JavaCpp v1.4.2 Release Notes

Release Date: 2018-07-17 // almost 6 years ago
    • Add Loader.getJavaVM() method to get the JNI JavaVM object as required to initialize some libraries
    • Fix Parser from outputting accessors not available with std::forward_list or std::list
    • Use pthread_setspecific() in Generator to detach automatically native threads on exit for Android (pull #243)
    • Fix issues with anonymous classes by calling getEnclosingClass() instead of getDeclaringClass()
    • Add android-arm-clang.properties, android-arm64-clang.properties, android-x86-clang.properties and android-x86_64-clang.properties
    • Search in linkpath before preloadpath to avoid copying or loading unwanted libraries
    • Fix Builder not bundling libraries containing a # fragment only useful at load time
    • Make Parser take into account implicit constructors even when inheriting some with using declarations
    • Pick up Parser translation of enum and macro expressions from Info.javaNames
    • Let Parser define Info.pointerTypes also for partially specialized templates with default arguments
    • Tweak Pointer.formatBytes() to increase the number of digits returned (issue #240)
    • Enhance InfoMap and StringAdapter with default mappings and casts for std::wstring
    • Templatize StringAdapter to allow other character types like wchar_t and add corresponding @StdWString annotation
    • Prevent Loader from creating symbolic links to rename libraries, which does not always work
    • Fix memory leak that occurs with "org.bytedeco.javacpp.nopointergc" (issue #239)
    • Make Generator use GENERIC_EXCEPTION_TOSTRING macro on GENERIC_EXCEPTION_CLASS instead of the default what()
    • Fall back on Android-friendly System.loadLibrary() in Loader.load() instead of "java.library.path" (issue bytedeco/javacv#970)
    • Add to Java enums an intern() method and use it in toString() to return non-null strings
    • Add PointerScope to manage more easily the resources of a group of Pointer objects
    • Fix Parser failing on const void*& or similar function arguments, and on constructors of class templates
    • Add Info.skipDefaults to have the Parser ignore default function arguments and prevent method overloading
    • Accelerate copy and extraction of resources by using larger buffers for file operations
    • Fix Parser incorrectly referring to function arguments with impossibly qualified names
    • Allow using new Info().enumerate() to map all C++ enum to Java enum types by default
    • Fix Parser issues surrounding enum classes, anonymous namespaces, and pure virtual classes
    • Avoid synchronized on first call to physicalBytes() in Pointer.deallocator() to reduce contention (pull #232)