3.0
This is a major release focusing on runtime performance
Highlights
- Compilation now requires C++17 compiler
- Greatly reduced amount of memory allocations and copying. Most things are now done at compile, rather than run time
- Improved string conversion time from C++ to Java
- Pervasive noexcept and move semantics to improve code generation
- Using thread_local for thread local storage instead of OS interfaces
- Reduced size of java_static_method and java_constructor which in turn greatly reduces size for class wrappers that contain them
- Proper container interfaces for arrays and direct buffers
Breaking changes
In general client code using jnigen to generate all native interfaces will not be affected. If you do things manually the following will require adjustment:
- Registration of native methods is now done differently
- java_static_method has an additional template parameter for the class it operates on
- java_static_method and java_constructor require additional argument for the class object when invoked