Repository navigation
An external library that holds a long or double constant can be used again.
E449 error reading external library fileon a valid library. A class file numbers alongordoubleconstant as two entries of its constant pool but stores it once. The library reader counted it as one, so every entry after it was read one off and the reader ran past the end of the pool. Any library whose Java source had a literal such as1000L(other than0and1, which need no constant) failed to load, and every function in it was then reported as unknown withE429.- The build directories are lowercase now:
release/,debug/,release-arm64/andrelease-android-{arm64,armv7,x86_64}/. Nothing else aboutmakechanged.
Prebuilt binaries for:
- Linux x86_64 (dynamic and static) and ARM64 (static)
- Android arm64-v8a, armeabi-v7a and x86_64 (API 21, NDK r29; the 64-bit ones use 16 KB-aligned
LOADsegments)
All six were verified by compiling Selftest in both math modes, the full CatchRect project and a program using a library with four long constants, which 3.5.4 rejects with E449: every build writes byte-identical class files. The library test was also built and run in the ANPASIDE emulator, together with a bundled library that divides by 1000L.
Full Changelog: 3.5.4...3.5.5