[Java][FlexBuffers] Make FlexBuffersBuilder reusable by adding clear() (#5889) (#5890)

This commit is contained in:
Markus Junginger 2020-05-07 21:26:55 +02:00 committed by GitHub
parent e84cbff673
commit c2da8d5d85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 0 deletions

View file

@ -591,7 +591,17 @@ class JavaTest {
public static void testFlexBuffersTest() {
FlexBuffersBuilder builder = new FlexBuffersBuilder(ByteBuffer.allocate(512),
FlexBuffersBuilder.BUILDER_FLAG_SHARE_KEYS_AND_STRINGS);
testFlexBuffersTest(builder);
int bufferLimit1 = ((ArrayReadWriteBuf) builder.getBuffer()).limit();
// Repeat after clearing the builder to ensure the builder is reusable
builder.clear();
testFlexBuffersTest(builder);
int bufferLimit2 = ((ArrayReadWriteBuf) builder.getBuffer()).limit();
TestEq(bufferLimit1, bufferLimit2);
}
public static void testFlexBuffersTest(FlexBuffersBuilder builder) {
// Write the equivalent of:
// { vec: [ -100, "Fred", 4.0, false ], bar: [ 1, 2, 3 ], bar3: [ 1, 2, 3 ],
// foo: 100, bool: true, mymap: { foo: "Fred" } }