C++:
The idea is simple. Instead of having to call rewind() after any operation on the buffer, we simply rewind it as part of the get_buffer() method. (The buffer is stored directly inside that method, so it's the only way to get it).
The only manual rewind() left is the one in icall() as I need to reset it to write the return value.
Kotlin:
I decided to made TransferContext.buffer private (doesn't change its visibility from C++ through JNI). I don't think it should be used directly outside TransferContext, so I did a small rework of its methods.
The goal was to remove any manual call to rewind() in the rest of the code. Rewinding should be the responsibility of TransferContext alone.
Implement #509
C++: The idea is simple. Instead of having to call
rewind()
after any operation on the buffer, we simply rewind it as part of theget_buffer()
method. (The buffer is stored directly inside that method, so it's the only way to get it). The only manualrewind()
left is the one inicall()
as I need to reset it to write the return value.Kotlin: I decided to made
TransferContext.buffer
private (doesn't change its visibility from C++ through JNI). I don't think it should be used directly outside TransferContext, so I did a small rework of its methods. The goal was to remove any manual call torewind()
in the rest of the code. Rewinding should be the responsibility of TransferContext alone.