JNAerator Changelog

What's new in JNAerator 0.12 Snapshot

Jun 27, 2013
  • Added support for JNA 3.5.1 (implement getFieldOrder in all structs, see issue #384)
  • Dropped support for bit fields in JNA structs (users should implement bit manipulation logic manually or use BridJ).
  • Dropped old shared library (DLL, Mach-O) scanning code, superseded by dyncall/dynload and BridJ's demanglers.
  • Fixed parsing of unsigned long constants (issue #362, issue #374)
  • Fixed generation of raw bindings for callback return types (issue #386)
  • Fixed generation of raw bindings with varargs (issue #386, patch contributed by twitwi!)
  • Fixed handling of library names with hyphens (issue #260)
  • Fixed support of identifiers with Object method names (issue #375)
  • Fixed support of enums inside objc classes (issue #370)
  • Fixed parsing of `@optional` and `@required` objective-c annotations (issue #369)
  • Fixed UTF32Char, added VOID, CHAR and byte as predefined types (issue #363)

New in JNAerator 0.11 (Mar 4, 2013)

  • Fixed infinite loops in simple typedefs (issue #288)
  • Fixed some -beautifyNames cases (issue #315)
  • Fixed parsing of some C++ templates (including template constructors)
  • Fixed "long long" regression
  • Fixed JNAeratorMojo.config documentation (issue #330)
  • Fixed long / long long / short pointer function return types
  • Fixed generation of BridJ C++ constructors
  • Fixed enum names that collide with Java identifiers (issue #334)
  • Added raw bindings generation for BridJ
  • Added parsing of 'using' C++ statements
  • Added TypeRef.resolvedJavaIdentifier
  • Added parser support for `complex double` (cf. complex.h)
  • Added test for BridJ raw signatures
  • Moved to ECJ 3.7.2
  • Moved to JNA 3.4.0
  • Refactored type resolution and conversion
  • Rationalized CompilerUtils classpath + bootclasspath
  • Removed C++ name mangling feature for JNA target runtime (was simplistic anyway)

New in JNAerator 0.9.8 (Jul 7, 2011)

  • Better COM JNAeration for BridJ (now supports and converts __declspec(uuid("xxx")) attributes !)
  • Accept some ill-formed constructs (mismatched extern "C" { ... }) for better cross-files parsing
  • Fixed JNAeration of nested dependent constants defines
  • Fixed automatic macro definitions : don't override already defined macros
  • Fixed parsing of singleton extern "C" definitions (without curly braces)
  • Fixed issue 86 (http://code.google.com/p/jnaerator/issues/detail?id=86) : generate proper array creation code for empty structs with the JNA runtime.
  • Fixed issue 85 (http://code.google.com/p/jnaerator/issues/detail?id=85) : generate proper constant pointer casting code for BridJ : `#define PTR ((void*)-1)` generates `Pointer PTR = Pointer.pointerToAddress(-1);`
  • Fixed generation of enums
  • Fixed typing of (constant) boolean expressions