Write new flags to proto messages for callables
This is needed to get rid of two unused bits: Flags.RESERVED_1 and Flags.RESERVED_2. The old flags are still there temporarily because of the bootstrap dependency on built-ins. Soon the old flags will be dropped and the current flags will be transformed to the new format
This commit is contained in:
+8
@@ -252,6 +252,10 @@ public class DescriptorSerializer {
|
|||||||
if (flags != builder.getFlags()) {
|
if (flags != builder.getFlags()) {
|
||||||
builder.setFlags(flags);
|
builder.setFlags(flags);
|
||||||
}
|
}
|
||||||
|
int newFlags = (flags & 0x3f) + ((flags >> 2) & ~0x3f);
|
||||||
|
if (newFlags != builder.getNewFlags()) {
|
||||||
|
builder.setNewFlags(newFlags);
|
||||||
|
}
|
||||||
|
|
||||||
builder.setName(getSimpleNameIndex(descriptor.getName()));
|
builder.setName(getSimpleNameIndex(descriptor.getName()));
|
||||||
|
|
||||||
@@ -295,6 +299,10 @@ public class DescriptorSerializer {
|
|||||||
if (flags != builder.getFlags()) {
|
if (flags != builder.getFlags()) {
|
||||||
builder.setFlags(flags);
|
builder.setFlags(flags);
|
||||||
}
|
}
|
||||||
|
int newFlags = (flags & 0x3f) + ((flags >> 2) & ~0x3f);
|
||||||
|
if (newFlags != builder.getNewFlags()) {
|
||||||
|
builder.setNewFlags(newFlags);
|
||||||
|
}
|
||||||
|
|
||||||
builder.setName(getSimpleNameIndex(descriptor.getName()));
|
builder.setName(getSimpleNameIndex(descriptor.getName()));
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -222,7 +222,7 @@ message Constructor {
|
|||||||
Visibility
|
Visibility
|
||||||
isSecondary
|
isSecondary
|
||||||
*/
|
*/
|
||||||
optional int32 flags = 1 [default = 6];
|
optional int32 flags = 1 [default = 6 /* public constructor, no annotations */];
|
||||||
|
|
||||||
repeated ValueParameter value_parameter = 2;
|
repeated ValueParameter value_parameter = 2;
|
||||||
|
|
||||||
@@ -242,6 +242,7 @@ message Function {
|
|||||||
isExternal
|
isExternal
|
||||||
*/
|
*/
|
||||||
optional int32 flags = 1 [default = 6];
|
optional int32 flags = 1 [default = 6];
|
||||||
|
optional int32 new_flags = 9 [default = 6 /* public final function, no annotations */];
|
||||||
|
|
||||||
required int32 name = 2 [(name_id_in_table) = true];
|
required int32 name = 2 [(name_id_in_table) = true];
|
||||||
|
|
||||||
@@ -273,7 +274,8 @@ message Property {
|
|||||||
lateinit
|
lateinit
|
||||||
hasConstant
|
hasConstant
|
||||||
*/
|
*/
|
||||||
optional int32 flags = 1 [default = 262 /* public (6) final property with getter (256) */];
|
optional int32 flags = 1 [default = 262];
|
||||||
|
optional int32 new_flags = 11 [default = 518 /* public (6) final property with getter (512) */];
|
||||||
|
|
||||||
required int32 name = 2 [(name_id_in_table) = true];
|
required int32 name = 2 [(name_id_in_table) = true];
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -198,6 +198,11 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR
|
|||||||
if (old.flags != new.flags) return false
|
if (old.flags != new.flags) return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (old.hasNewFlags() != new.hasNewFlags()) return false
|
||||||
|
if (old.hasNewFlags()) {
|
||||||
|
if (old.newFlags != new.newFlags) return false
|
||||||
|
}
|
||||||
|
|
||||||
if (!checkStringEquals(old.name, new.name)) return false
|
if (!checkStringEquals(old.name, new.name)) return false
|
||||||
|
|
||||||
if (old.hasReturnType() != new.hasReturnType()) return false
|
if (old.hasReturnType() != new.hasReturnType()) return false
|
||||||
@@ -243,6 +248,11 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR
|
|||||||
if (old.flags != new.flags) return false
|
if (old.flags != new.flags) return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (old.hasNewFlags() != new.hasNewFlags()) return false
|
||||||
|
if (old.hasNewFlags()) {
|
||||||
|
if (old.newFlags != new.newFlags) return false
|
||||||
|
}
|
||||||
|
|
||||||
if (!checkStringEquals(old.name, new.name)) return false
|
if (!checkStringEquals(old.name, new.name)) return false
|
||||||
|
|
||||||
if (old.hasReturnType() != new.hasReturnType()) return false
|
if (old.hasReturnType() != new.hasReturnType()) return false
|
||||||
@@ -900,6 +910,10 @@ fun ProtoBuf.Function.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int)
|
|||||||
hashCode = 31 * hashCode + flags
|
hashCode = 31 * hashCode + flags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hasNewFlags()) {
|
||||||
|
hashCode = 31 * hashCode + newFlags
|
||||||
|
}
|
||||||
|
|
||||||
hashCode = 31 * hashCode + stringIndexes(name)
|
hashCode = 31 * hashCode + stringIndexes(name)
|
||||||
|
|
||||||
if (hasReturnType()) {
|
if (hasReturnType()) {
|
||||||
@@ -944,6 +958,10 @@ fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int)
|
|||||||
hashCode = 31 * hashCode + flags
|
hashCode = 31 * hashCode + flags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hasNewFlags()) {
|
||||||
|
hashCode = 31 * hashCode + newFlags
|
||||||
|
}
|
||||||
|
|
||||||
hashCode = 31 * hashCode + stringIndexes(name)
|
hashCode = 31 * hashCode + stringIndexes(name)
|
||||||
|
|
||||||
if (hasReturnType()) {
|
if (hasReturnType()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user