JavaCPP v1.1 Release Notes

Release Date: 2015-10-25 // over 8 years ago
    • Make Generator use actual C++ operators for commonly overloaded ones instead of calling operator??() functions, for better portability
    • Fix potential race condition when deallocating Pointer objects from multiple threads
    • Add logging to Loader.loadLibrary() to help diagnose loading problems (issue #41)
    • Provide new @Platform(pragma=...) value to have Generator output #pragma directives
    • Upgrade all Maven dependencies and plugins to latest versions, thus bumping minimum requirements to Maven 3.0
    • Add new "org.bytedeco.javacpp.cachedir" system property to specify where to extract and leave native libraries to share across multiple JVM instances
    • Provide @Virtual(true) to specify pure virtual functions and prevent Generator from making undefined calls
    • Update properties for Android to detect undefined symbols at compile time, instead of getting errors only at runtime
    • Log when Pointer.deallocator gets registered, garbage collected, or deallocated manually, if Logger.isDebugEnabled() (redirectable to SLF4J)
    • Make Pointer implements AutoCloseable to let us try-with-resources, thus bumping minimum requirements to Java SE 7 and Android 4.0
    • Introduce the concept of "owner address" to integrate Pointer transparently with std::shared_ptr, etc (Thanks to Cyprien Noel for the idea!)
    • Add new "cpp11" option for the @Platform(compiler=...) value to build against the C++11 standard
    • Fix Parser support for the interface keyword of the Microsoft C/C++ Compiler
    • Let Parser pick up names from Info.pointerTypes in the case of function pointers as well
    • Add new "org.bytedeco.javacpp.nopointergc" system property to prevent Pointer from registering deallocators with the garbage collector
    • Add @Properties(names=...) value to specify a list of default platform names that can be inherited by other classes
    • Fix a couple of Parser issues on complex template types (issue #37)
    • Take into account Buffer.arrayOffset() when creating a Pointer from a buffer backed by an array (issue bytedeco/javacv#190)
    • Fix some incorrectly translated comments in Parser (issue #32)
    • Add Parser support for the std::bitset "container", and a bug involving simple types and skipped identifiers
    • Properly parse overloaded new and delete operators, friend declarations, and default constructors with an explicit void parameter (issue #31)
    • Fix a couple of potential NullPointerException in Parser (issue #30)
    • Have the Parser wrap the iterator of some standard C++ containers when useful
    • Use Clang as the default compiler for Mac OS X and iOS (via RoboVM)
    • Adjust BytePointer, CharPointer, IntPointer, and StringAdapter to work with data strings that are not null-terminated (issue #24)
    • Forbid Parser from producing abstract classes, preventing C++ factory methods and such from working properly (issue #25)
    • Fix crash when trying to create objects from abstract classes, to let the exception be thrown on return (issue #26)
    • Switch to GCC 4.9 by default on Android, probably dropping support for Android 2.2, because GCC 4.6 has been dropped from the NDK since r10e
    • Insure Generator casts properly to jweak when calling DeleteWeakGlobalRef() (issue #23)