BridJ received a lot of fixes and enhancements in this new version, notably thanks to the fact I’m using it in ScalaCL (and that I have more time for my hobby projects now).

Here are the main changes :

  • Fixed binding of “c” library on Unix
  • Fixed iteration on unbound native-allocated pointers (issue 37).
  • Fixed Visual C++ demangling (issue 36 : bad handling of back-references).
  • Added Pointer.getBuffer(), getSizeTs(), getCLongs() and other missing methods.
  • Fixed byteOffset-related issues in CLong and SizeT pointer read/write methods.
  • Renamed most pointer byteOffset methods with an -AtOffset suffix (for instance, Pointer.getInt(long) becomes getIntAtOffset(long))
  • Inverted charset and StringType arguments in Pointer.getString / .setString methods
  • Renamed Pointer.withIO(PointerIO<U>) to Pointer.as(PointerIO<U>)
  • Added Pointer.asUntyped() (equiv. to Pointer.as((Class<?>)null))
  • Allow pointerToBuffer on a non-direct buffer (and added Pointer.updateBuffer to copy data back to non-direct buffer if needed)
  • Assume @Runtime(CRuntime.class) by default
  • Autodetect calling convention on Windows (based on name mangling), unless convention is explicitely specified with @Convention(Style.X)
  • Added BRIDJ_<LIBNAME>_LIBRARY environment variables to hard-code the shared library path in priority
  • Added library alias mechanism : BridJ.setNativeLibraryActualName, .addNativeLibraryAlias
  • Fixed callbacks-related Win32 crashes
  • Fixed super-critical bug on Windows 32 bits with size_t arguments !
  • Fixed some Pointer endianness bugs

Now what ?