Add FLATBUFFERS_COMPATIBILITY string (#5381)

* Add FLATBUFFERS_COMPATIBILITY string

- Add a new __reset method NET/JAVA which hides internal state

* Resolve PR notes

* Use operator new() to __init of Struct and Table

* Restrict visibility of C# Table/Struct to internal level
This commit is contained in:
Vladimir Glavnyy
2019-06-18 00:16:21 +07:00
committed by Wouter van Oortmerssen
parent a80db8538c
commit 0d2cebccfe
49 changed files with 191 additions and 101 deletions

View File

@@ -29,6 +29,21 @@ public class Struct {
/** The underlying ByteBuffer to hold the data of the Struct. */
protected ByteBuffer bb;
/**
* Re-init the internal state with an external buffer {@code ByteBuffer} and an offset within.
*
* This method exists primarily to allow recycling Table instances without risking memory leaks
* due to {@code ByteBuffer} references.
*/
protected void __reset(int _i, ByteBuffer _bb) {
bb = _bb;
if (bb != null) {
bb_pos = _i;
} else {
bb_pos = 0;
}
}
/**
* Resets internal state with a null {@code ByteBuffer} and a zero position.
*
@@ -39,8 +54,7 @@ public class Struct {
* @param struct the instance to reset to initial state
*/
public void __reset() {
bb = null;
bb_pos = 0;
__reset(0, null);
}
}