JavaCpp v1.5.4 Release Notes
Release Date: 2020-09-09 // 6 months ago-
- Fix
Parser
not producingPointerPointer
parameters forFunctionPointer
subclasses - Let
Builder
copy even thoseplatform.executable
files without prefix or suffix - Add missing declaration for
GetCurrentThreadId()
inGenerator
whenNO_WINDOWS_H
is defined - Process
#undef
directives to allow redefining macros withParser
(issue bytedeco/javacpp-presets#935) - Pick up in
Parser
methods specified withoverride
, in addition tovirtual
(issue #419) - Let
Parser
create a separate Java peer class whenInfo.pointerTypes
is different for types prefixed withconst
- Fix
Generator
for@Virtual
methods protected in subclasses by casting to superclass (issue #419) - Add missing values to
Info.Info(Info)
and fix incorrectInfo.skipDefaults(boolean)
(issue #420) - Add
PointerBufferPoolMXBean
to track allocations and deallocations ofPointer
(pull #413) - Change the
@Platform(executable=...
property to an array and allow bundling multiple files per class - Prevent
Builder
unnecessarily linking with-framework JavaVM
to fix GraalVM Native Image on Mac (issue #417) - Add
Pointer.getPointer()
methods as shortcuts fornew P(p).position(p.position + i)
(issue #155) - Fix
Generator
for cases when aFunctionPointer
returns anotherFunctionPointer
- Fix
Parser
failure withauto
keyword of C++11 used as placeholder type specifier or for trailing return type (issue #407) - Add
Builder.configDirectory
option to letGenerator
output files that GraalVM needs for AOT compilation (issue eclipse/deeplearning4j#7362) - Fix
Parser
error ontemplate<>
containing non-type parameters without names (issue bytedeco/javacpp-presets#889) - Bundle also the
vcruntime140_1.dll
andmsvcp140_1.dll
redist files from Visual Studio - Fix
Builder
for different "java.home" path returned by latest JDKs from Oracle (pull #400) - Refactor
Builder
a little to work around issues with Gradle - Log as warnings
SecurityException
thrown onLoader.getCacheDir()
instead of swallowing them - Fix memory leak that occurs with "org.bytedeco.javacpp.nopointergc" (issue bytedeco/javacpp-presets#878)
- Take into account
platform.library.path
when extracting executables and their libraries onLoader.load()
(issue bytedeco/javacv#1410) - Move init code for
Loader.getPlatform()
toDetector
to avoid warning messages (issue #393) - Add
HyperslabIndex
class withoffsets
,strides
,counts
, andblocks
parameters (pull #392) - Add
Index
class to allow overriding how the index is calculated inIndexer
(issue #391)
- Fix
Previous changes from v1.5.3
-
- Deprecate but also fix
Indexer.rows()
,cols()
,width()
,height()
, andchannels()
(pull #390) - Fix
Parser
producing invalid wrappers for basic containers likestd::set<std::pair<...> >
- Add compiler options for C++98, C++03, C++14, and C++17 to platform properties files (pull #389)
- Remove default compiler options from
linux-armhf.properties
that work mostly only for Raspberry Pi - Add
Generator
support forenum
classes withboolean
values (issue #388) - Fix
Parser
outputting invalid Java code forenum
ofboolean
,byte
, andshort
types (issue #388) - Pick up in
Generator
the@Namespace
annotation from paired method too for global getters and setters (issue #387) - Add presets for
jnijavacpp
andjavacpp-platform
artifact to fix issues at load time (issue bytedeco/javacv#1305) - Prevent potential
NullPointerException
inLoader.checkVersion()
(pull #385) - Allow using
Charset
to avoidUnsupportedEncodingException
fromBytePointer
(pull #384) - Add static
Pointer.isNull(Pointer p)
helper method, for convenience - Add
MoveAdapter
and corresponding@StdMove
annotation to support objects that requirestd::move
from C++11 - Always use
File.pathSeparator
when passing multiple paths via theBUILD_PATH
environment variable - Fix
Parser
not picking upInfo
for declarations withdecltype()
specifier - Fix
Pointer
losing its owner when mistakenly ignoring deallocators forconst
values returned from adapters - Remove unnecessary declared
Exception
fromIndexer.close()
signature (pull #382) - Make sure
Parser
recognizes base classes ofstruct
aspublic
by default - Fix
Parser
error on initializer lists containing C++11 style{ ... }
for template instances - Change the default mapping of
jboolean
toBooleanPointer
instead ofBoolPointer
- Fix
Parser
error on function declarations with...
varargs as single parameter - Make
Parser
skip over&&
-qualified functions automatically since they cannot be supported - Fix
Parser
annotating pointer castoperator
methods with incorrect@Cast
(issue #379) - Allow
Parser
to inherit constructors from template classes withusing
- Make
Parser
honorInfo.skip
for anonymousstruct
orunion
as well - Optimize
Pointer.sizeof()
method of subclasses for primitive types - Let users override
Info.enumerate
on a per-enum
basis and allow attributes afterenum class
- Fix
Parser
not considering identifiers as type names when placed directly afterfriend
or intemplate<>
- Check for defined
NO_WINDOWS_H
macro inGenerator
to skip#include <windows.h>
- Provide
UIntIndexer
andULongIndexer
, treating array and buffer data as unsigned 32- or 64-bit integers, for convenience (issue #376) - Fix
Parser
not evaluatingusing namespace
with respect to the current block (issue #370) - Fix exception in
Loader
when running jlink image with JDK 13+ (pull #375) - Fix errors with
@Virtual @Name("operator ...")
inGenerator
by using Java names for C++ (issue #362) - Apply in
Parser
missingconst
to parameters of@Virtual
functions using adapters - Use in
Generator
C++11override
keyword for@Virtual
functions (pull #373) - Speed up
Loader.load()
by caching results returned fromLoader.findLibrary()
(issue #287) - Pick up
Info
correctly inParser
also for anonymous function pointers withconst
parameters - Make
Parser
applyInfo.translate
in the case of enumerators as well - Fix compiler failures in
Builder
with platform properties containing relative paths - Let
Parser
rename types usingInfo.javaNames
in addition tovalueTypes
andpointerTypes
(pull #367) - Include in the defaults of
InfoMap
mappings missing for thestd::array
andjchar
types - Fix various
Parser
failures with attributes on constructors, empty macros, enum classes, friend classes, inherited constructors, and keywords in parameter names - Add to
Parser
support for C++11 attributes found within[[
and]]
brackets - Consider
Pointer
valuesmaxBytes
ormaxPhysicalBytes
suffixed with%
as relative toRuntime.maxMemory()
(pull #365) - Prevent
Parser
from consideringconstexpr operator
declarations asconst
types - Fix on
Loader.load()
the default library name of classes without@Properties(target=..., global=...)
- Prevent
Parser
from outputtingasPointer()
cast methods with multiple inheritance (issue #360) - Add
CacheMojo
to help extract binaries and resources used by command line tools outside of the JVM - Fix Android build properties for NDK r20b (pull #357)
- Deprecate but also fix