Fixed vectors of enums in object API serialized incorrectly.

And also added tests for them.

Change-Id: I91af1904105435601287291412e82d5066f476a5
Tested: on Linux.
This commit is contained in:
Wouter van Oortmerssen
2018-11-05 14:33:36 -08:00
parent 21591916af
commit 980a6d66d3
18 changed files with 368 additions and 27 deletions

View File

@@ -1738,11 +1738,36 @@ MyGame.Example.Monster.prototype.anyAmbiguous = function(obj) {
return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
};
/**
* @param {number} index
* @returns {MyGame.Example.Color}
*/
MyGame.Example.Monster.prototype.vectorOfEnums = function(index) {
var offset = this.bb.__offset(this.bb_pos, 98);
return offset ? /** @type {MyGame.Example.Color} */ (this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index)) : /** @type {MyGame.Example.Color} */ (0);
};
/**
* @returns {number}
*/
MyGame.Example.Monster.prototype.vectorOfEnumsLength = function() {
var offset = this.bb.__offset(this.bb_pos, 98);
return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};
/**
* @returns {Int8Array}
*/
MyGame.Example.Monster.prototype.vectorOfEnumsArray = function() {
var offset = this.bb.__offset(this.bb_pos, 98);
return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};
/**
* @param {flatbuffers.Builder} builder
*/
MyGame.Example.Monster.startMonster = function(builder) {
builder.startObject(47);
builder.startObject(48);
};
/**
@@ -2431,6 +2456,35 @@ MyGame.Example.Monster.addAnyAmbiguous = function(builder, anyAmbiguousOffset) {
builder.addFieldOffset(46, anyAmbiguousOffset, 0);
};
/**
* @param {flatbuffers.Builder} builder
* @param {flatbuffers.Offset} vectorOfEnumsOffset
*/
MyGame.Example.Monster.addVectorOfEnums = function(builder, vectorOfEnumsOffset) {
builder.addFieldOffset(47, vectorOfEnumsOffset, 0);
};
/**
* @param {flatbuffers.Builder} builder
* @param {Array.<MyGame.Example.Color>} data
* @returns {flatbuffers.Offset}
*/
MyGame.Example.Monster.createVectorOfEnumsVector = function(builder, data) {
builder.startVector(1, data.length, 1);
for (var i = data.length - 1; i >= 0; i--) {
builder.addInt8(data[i]);
}
return builder.endVector();
};
/**
* @param {flatbuffers.Builder} builder
* @param {number} numElems
*/
MyGame.Example.Monster.startVectorOfEnumsVector = function(builder, numElems) {
builder.startVector(1, numElems, 1);
};
/**
* @param {flatbuffers.Builder} builder
* @returns {flatbuffers.Offset}