fixed mutating inline values (#5942)
Co-authored-by: Kamil Rojewski <kamil.rojewski@gmail.com>
This commit is contained in:
parent
d026e6f071
commit
38ed69eb3d
|
@ -126,3 +126,4 @@ Cargo.lock
|
|||
grpc/google/
|
||||
**/Package.resolved
|
||||
.clangd/**
|
||||
package-lock.json
|
||||
|
|
|
@ -1625,19 +1625,25 @@ class JsTsGenerator : public BaseGenerator {
|
|||
" = function(value) {\n";
|
||||
}
|
||||
|
||||
code += " var offset = " + GenBBAccess() + ".__offset(this.bb_pos, " +
|
||||
NumToString(field.value.offset) + ");\n\n";
|
||||
code += " if (offset === 0) {\n";
|
||||
code += " return false;\n";
|
||||
code += " }\n\n";
|
||||
if (struct_def.fixed) {
|
||||
code += " " + GenBBAccess() + ".write" +
|
||||
MakeCamel(GenType(field.value.type)) +
|
||||
"(this.bb_pos + " + NumToString(field.value.offset) + ", ";
|
||||
} else {
|
||||
code += " var offset = " + GenBBAccess() + ".__offset(this.bb_pos, " +
|
||||
NumToString(field.value.offset) + ");\n\n";
|
||||
code += " if (offset === 0) {\n";
|
||||
code += " return false;\n";
|
||||
code += " }\n\n";
|
||||
|
||||
// special case for bools, which are treated as uint8
|
||||
code += " " + GenBBAccess() + ".write" +
|
||||
MakeCamel(GenType(field.value.type)) +
|
||||
"(this.bb_pos + offset, ";
|
||||
if (field.value.type.base_type == BASE_TYPE_BOOL &&
|
||||
lang_.language == IDLOptions::kTs) {
|
||||
code += "+";
|
||||
// special case for bools, which are treated as uint8
|
||||
code += " " + GenBBAccess() + ".write" +
|
||||
MakeCamel(GenType(field.value.type)) +
|
||||
"(this.bb_pos + offset, ";
|
||||
if (field.value.type.base_type == BASE_TYPE_BOOL &&
|
||||
lang_.language == IDLOptions::kTs) {
|
||||
code += "+";
|
||||
}
|
||||
}
|
||||
|
||||
code += "value);\n";
|
||||
|
|
|
@ -322,13 +322,7 @@ MyGame.Example.Test.prototype.a = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Test.prototype.mutate_a = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt16(this.bb_pos + offset, value);
|
||||
this.bb.writeInt16(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -344,13 +338,7 @@ MyGame.Example.Test.prototype.b = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Test.prototype.mutate_b = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 2);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt8(this.bb_pos + offset, value);
|
||||
this.bb.writeInt8(this.bb_pos + 2, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -509,13 +497,7 @@ MyGame.Example.Vec3.prototype.x = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Vec3.prototype.mutate_x = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb.writeFloat32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -531,13 +513,7 @@ MyGame.Example.Vec3.prototype.y = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Vec3.prototype.mutate_y = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb.writeFloat32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -553,13 +529,7 @@ MyGame.Example.Vec3.prototype.z = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Vec3.prototype.mutate_z = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 8);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb.writeFloat32(this.bb_pos + 8, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -575,13 +545,7 @@ MyGame.Example.Vec3.prototype.test1 = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Vec3.prototype.mutate_test1 = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 16);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeFloat64(this.bb_pos + offset, value);
|
||||
this.bb.writeFloat64(this.bb_pos + 16, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -597,13 +561,7 @@ MyGame.Example.Vec3.prototype.test2 = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Vec3.prototype.mutate_test2 = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 24);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeUint8(this.bb_pos + offset, value);
|
||||
this.bb.writeUint8(this.bb_pos + 24, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -681,13 +639,7 @@ MyGame.Example.Ability.prototype.id = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Ability.prototype.mutate_id = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeUint32(this.bb_pos + offset, value);
|
||||
this.bb.writeUint32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -703,13 +655,7 @@ MyGame.Example.Ability.prototype.distance = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
MyGame.Example.Ability.prototype.mutate_distance = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeUint32(this.bb_pos + offset, value);
|
||||
this.bb.writeUint32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
|
@ -356,13 +356,7 @@ a():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_a(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt16(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt16(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -378,13 +372,7 @@ b():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_b(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 2);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt8(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt8(this.bb_pos + 2, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -604,13 +592,7 @@ x():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_x(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb!.writeFloat32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -626,13 +608,7 @@ y():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_y(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb!.writeFloat32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -648,13 +624,7 @@ z():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_z(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 8);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeFloat32(this.bb_pos + offset, value);
|
||||
this.bb!.writeFloat32(this.bb_pos + 8, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -670,13 +640,7 @@ test1():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_test1(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 16);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeFloat64(this.bb_pos + offset, value);
|
||||
this.bb!.writeFloat64(this.bb_pos + 16, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -692,13 +656,7 @@ test2():MyGame.Example.Color {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_test2(value:MyGame.Example.Color):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 24);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint8(this.bb_pos + offset, value);
|
||||
this.bb!.writeUint8(this.bb_pos + 24, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -833,13 +791,7 @@ id():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_id(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint32(this.bb_pos + offset, value);
|
||||
this.bb!.writeUint32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -855,13 +807,7 @@ distance():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_distance(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeUint32(this.bb_pos + offset, value);
|
||||
this.bb!.writeUint32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
|
@ -171,13 +171,7 @@ NamespaceA.NamespaceB.StructInNestedNS.prototype.a = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
NamespaceA.NamespaceB.StructInNestedNS.prototype.mutate_a = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -193,13 +187,7 @@ NamespaceA.NamespaceB.StructInNestedNS.prototype.b = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
NamespaceA.NamespaceB.StructInNestedNS.prototype.mutate_b = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb.writeInt32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
|
@ -170,13 +170,7 @@ a():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_a(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -192,13 +186,7 @@ b():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_b(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 4);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt32(this.bb_pos + 4, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
|
@ -167,13 +167,7 @@ Rapunzel.prototype.hairLength = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
Rapunzel.prototype.mutate_hair_length = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -226,13 +220,7 @@ BookReader.prototype.booksRead = function() {
|
|||
* @returns {boolean}
|
||||
*/
|
||||
BookReader.prototype.mutate_books_read = function(value) {
|
||||
var offset = this.bb.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
|
@ -202,13 +202,7 @@ hairLength():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_hair_length(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
@ -290,13 +284,7 @@ booksRead():number {
|
|||
* @returns boolean
|
||||
*/
|
||||
mutate_books_read(value:number):boolean {
|
||||
var offset = this.bb!.__offset(this.bb_pos, 0);
|
||||
|
||||
if (offset === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.bb!.writeInt32(this.bb_pos + offset, value);
|
||||
this.bb!.writeInt32(this.bb_pos + 0, value);
|
||||
return true;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue