Commit Graph

19 Commits

Author SHA1 Message Date
Chris Vest 4576961971 Update implementation with latest Netty and Panama Foreign API changes 2021-09-30 14:13:36 +02:00
Chris Vest 6c9f1cbb4e Update compatibility and fix build
The compatibility baseline is now Java 17, which means we can use new language features and new bytecode version.

The MemSegBuffer implementation has been updated with the latest API changes from netty/main.
2021-09-23 10:57:22 +02:00
Chris Vest 6413143811 Update with recent Netty 5 changes 2021-09-01 11:16:41 +02:00
Chris Vest d0d929bc55 Align the remaining exception expectations and fix MemSegBuffer and CompositeBuffer to throw the correct exceptions 2021-06-01 12:04:57 +02:00
Chris Vest 289c9ebba1 Make Buffer.ensureWritable throw exceptions consistent with the rest of the API 2021-06-01 11:35:01 +02:00
Chris Vest eaee4350b7 Make MemSegBuffer.compact throw correct exception when read-only 2021-06-01 11:20:58 +02:00
Chris Vest 60df2393f3 Get the tests passing again 2021-06-01 10:28:42 +02:00
Riley Park c840a41e31
Move to custom exception types 2021-05-31 11:50:44 -07:00
Chris Vest a48a12794d Make `release(int)` methods handle errors better
Exception types and error messages are now unified and more descriptive.
2021-05-31 15:06:48 +02:00
Chris Vest db7ac99699 Fix more review comments 2021-05-28 17:10:46 +02:00
Chris Vest af119de4a7 Implement BufferIntegratable for Nio- and UnsafeBuffer 2021-05-28 14:08:55 +02:00
Chris Vest 0aa2853cf3 Fix a bug in MemSegBuffer 2021-05-28 13:55:55 +02:00
Chris Vest 050db15e07 Fix bug where `copy` with over-sized length threw a wrong exception 2021-05-27 17:41:40 +02:00
Chris Vest 1c25fa88b7 Fix test failures coming from removal of `slice` and introduction of `copy`. 2021-05-27 17:06:30 +02:00
Chris Vest 707e5e2afb Remove the slice methods, add copy methods 2021-05-27 14:07:31 +02:00
Chris Vest bfa8fd0b1f Make tests pass after removing `acquire` from the public API 2021-05-27 11:39:57 +02:00
Chris Vest b8cfd0768e Fixes for compilation and running tests with UnsafeBuffer implementation 2021-05-26 18:31:28 +02:00
Chris Vest f0ee2e1467 Remove `acquire` from the public API
This is a step toward effectively eliminating reference counting.
Reference counting is only needed when the memory in buffers can be shared.
If we remove all forms of sharing, then the buffers would be in an owned state at all times.
Then we would no longer need to worry about the state of the buffers before calling, e.g. `ensureWritable` and methods like that.

Just removing `acquire` is not enough; we also need to remove the `slice` method.
In this commit we are, however, starting with `acquire` because doing so requires rearranging the type hierarchy and the generics we have in play.
This was not an easy exercise, but for the purpose of record keeping, it's useful to have that work separate from the work of removing `slice`.
2021-05-26 17:19:26 +02:00
Chris Vest 1143223407 First draft of splitting the repo into multiple modules and allowing builds with Java 11 2021-05-21 14:04:23 +02:00