[TS] fix incorrect reverse when writting array of structs (#7271)
This commit is contained in:
parent
ec0129369c
commit
987bebe678
|
@ -4,7 +4,7 @@ import fs from 'fs'
|
||||||
import * as flatbuffers from 'flatbuffers'
|
import * as flatbuffers from 'flatbuffers'
|
||||||
|
|
||||||
import { Monster, MonsterT } from './my-game/example/monster'
|
import { Monster, MonsterT } from './my-game/example/monster'
|
||||||
import { Test } from './my-game/example/test'
|
import { Test, TestT } from './my-game/example/test'
|
||||||
import { Stat } from './my-game/example/stat'
|
import { Stat } from './my-game/example/stat'
|
||||||
import { Vec3 } from './my-game/example/vec3'
|
import { Vec3 } from './my-game/example/vec3'
|
||||||
import { Color } from './my-game/example/color';
|
import { Color } from './my-game/example/color';
|
||||||
|
@ -47,6 +47,7 @@ function main() {
|
||||||
fuzzTest1();
|
fuzzTest1();
|
||||||
testNullStrings();
|
testNullStrings();
|
||||||
testSharedStrings();
|
testSharedStrings();
|
||||||
|
testVectorOfStructs();
|
||||||
|
|
||||||
console.log('FlatBuffers test: completed successfully');
|
console.log('FlatBuffers test: completed successfully');
|
||||||
}
|
}
|
||||||
|
@ -458,4 +459,22 @@ function testNullStrings() {
|
||||||
assert.strictEqual(builder.createSharedString(undefined), 0);
|
assert.strictEqual(builder.createSharedString(undefined), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testVectorOfStructs() {
|
||||||
|
let monster = new MonsterT();
|
||||||
|
monster.name = 'testVectorOfStructs';
|
||||||
|
monster.test4 = [
|
||||||
|
new TestT(1, 2),
|
||||||
|
new TestT(3, 4)
|
||||||
|
];
|
||||||
|
|
||||||
|
let builder = new flatbuffers.Builder();
|
||||||
|
builder.finish(monster.pack(builder));
|
||||||
|
|
||||||
|
let decodedMonster = Monster.getRootAsMonster(builder.dataBuffer()).unpack();
|
||||||
|
assert.strictEqual(decodedMonster.test4[0].a, 1);
|
||||||
|
assert.strictEqual(decodedMonster.test4[0].b, 2);
|
||||||
|
assert.strictEqual(decodedMonster.test4[1].a, 3);
|
||||||
|
assert.strictEqual(decodedMonster.test4[1].b, 4);
|
||||||
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|
|
@ -617,7 +617,7 @@ export class Builder {
|
||||||
|
|
||||||
createStructOffsetList(list: string[] | any[], startFunc: (builder: Builder, length: number) => void): Offset {
|
createStructOffsetList(list: string[] | any[], startFunc: (builder: Builder, length: number) => void): Offset {
|
||||||
startFunc(this, list.length);
|
startFunc(this, list.length);
|
||||||
this.createObjectOffsetList(list);
|
this.createObjectOffsetList(list.slice().reverse());
|
||||||
return this.endVector();
|
return this.endVector();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue