[Kotlin] Fix key lookup returning null clashing with default value (#7237)

* [Java] Fix key lookup returning null clashing with default value

A field with key attribute must always be written on the message so it
can be looked up by key. There is a edge case where inserting a key
field with same value as default would prevent it to be written on
the message and later cannot be found when searched by key.

* [Kotlin] Fix key lookup returning null clashing with default value

A field with key attribute must always be written on the message so it
can be looked up by key. There is a edge case where inserting a key
field with same value as default would prevent it to be written on
the message and later cannot be found when searched by key.

Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
Paulo Pinheiro
2022-04-12 02:17:19 +02:00
committed by GitHub
parent 7181d77700
commit 7b5fd2bd05
8 changed files with 211 additions and 13 deletions

View File

@@ -885,7 +885,10 @@ class Monster : Table() {
fun addPos(builder: FlatBufferBuilder, pos: Int) = builder.addStruct(0, pos, 0)
fun addMana(builder: FlatBufferBuilder, mana: Short) = builder.addShort(1, mana, 150)
fun addHp(builder: FlatBufferBuilder, hp: Short) = builder.addShort(2, hp, 100)
fun addName(builder: FlatBufferBuilder, name: Int) = builder.addOffset(3, name, 0)
fun addName(builder: FlatBufferBuilder, name: Int) {
builder.addOffset(name)
builder.slot(3)
}
fun addInventory(builder: FlatBufferBuilder, inventory: Int) = builder.addOffset(5, inventory, 0)
fun createInventoryVector(builder: FlatBufferBuilder, data: UByteArray) : Int {
builder.startVector(1, data.size, 1)

View File

@@ -48,7 +48,10 @@ class Referrable : Table() {
return endReferrable(builder)
}
fun startReferrable(builder: FlatBufferBuilder) = builder.startTable(1)
fun addId(builder: FlatBufferBuilder, id: ULong) = builder.addLong(0, id.toLong(), 0)
fun addId(builder: FlatBufferBuilder, id: ULong) {
builder.addLong(id.toLong())
builder.slot(0)
}
fun endReferrable(builder: FlatBufferBuilder) : Int {
val o = builder.endTable()
return o

View File

@@ -73,7 +73,10 @@ class Stat : Table() {
fun startStat(builder: FlatBufferBuilder) = builder.startTable(3)
fun addId(builder: FlatBufferBuilder, id: Int) = builder.addOffset(0, id, 0)
fun addVal_(builder: FlatBufferBuilder, val_: Long) = builder.addLong(1, val_, 0L)
fun addCount(builder: FlatBufferBuilder, count: UShort) = builder.addShort(2, count.toShort(), 0)
fun addCount(builder: FlatBufferBuilder, count: UShort) {
builder.addShort(count.toShort())
builder.slot(2)
}
fun endStat(builder: FlatBufferBuilder) : Int {
val o = builder.endTable()
return o