Sitelet https://github.com/HaxeFoundation/hxcpp/releases
Skip to content

Releases: HaxeFoundation/hxcpp

Release 4.3.171

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:10
199b756
size_t QuickVec and Appropriate BlockData Fields (#1402)

* QuickVec uses size_t

* hole tracking uses uint8_t

MAX_HOLES is 127

* Used rows and used bytes use appropriate sized types

* fragged rows uses uint8_t

* size_t for block stat fields

* uint16_t for max hole size

* Fix indent

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.170

Choose a tag to compare

@github-actions github-actions released this 20 Sep 09:16
637542b
v4.3.170

Fix haxe 4 compile time regressions (#1397)

Release 4.3.169

Choose a tag to compare

@github-actions github-actions released this 18 Sep 19:17
06d571e
Remove hx/Unordered.h (#1401)

This was originally added because unordered_map/set were only available
in c++11, so this would fall back to the ordered variants if they were
unavailable.

However, it would only use the unordered variants on msvc or if
the preprocessor define HXCPP_CPP11 is set, which has only ever been
the case on the android gcc toolchain:
86ca6eb00357f6939eb99378ff7f32dc60f15c29

Now C++11 has been a requirement for building the hxcpp runtime for a
while, so we can just assume they are available instead of having these
wrappers.

Release 4.3.168

Choose a tag to compare

@github-actions github-actions released this 10 Sep 14:44
12f04e2
Restore outPre and outPost manifest tag parsing (#1394)

These were removed in 01ef3fa595cceb6a4e045eff38191f6d6cf1cece,
seemingly due to a copy-paste error. They are used for the
msvc-toolchain, so they cannot be removed:

https://github.com/HaxeFoundation/hxcpp/blob/ceb70d040f0792f004ccf1ed7eb6fcea01d7f3ff/toolchain/msvc-toolchain.xml#L171-L172

Release 4.3.167

Choose a tag to compare

@github-actions github-actions released this 10 Sep 14:03
e08ab16
Stop false positive in clang array OOB sanitiser (#1395)

* 1D array for row data

* mRow rename and add row helper function

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.166

Choose a tag to compare

@github-actions github-actions released this 10 Sep 09:01
e4dc001
size_t for gc globals (#1393)

* size_t for gc globals

* Remove commented out log referring to now non existing global

---------

Co-authored-by: Aidan Lee <aidan.lee@evcam.com>

Release 4.3.165

Choose a tag to compare

@github-actions github-actions released this 08 Sep 19:19
ceb70d0
Fix crash with HXCPP_CATCH_SEGV on android x86_64 (#1378)

* Disable android signal wrapper for x86_64

This compat code was added in c91637a76c8b2045902a6825f4cdd71fb80a5006
to work around an ndk compatibility issue when linking files that target
platform 21 with older object files.

64 bit architectures (arm64 and x86_64) have only ever been supported
with platform 21 and above, so this fix should be excluded from there.
Keeping it enabled results in an error on x86_64 android builds that
define HXCPP_CATCH_SEGV, because bsd_signal does not exist, so when
hxcpp attempts to call signal there is a crash with the message:
"bsd_signal symbol not found!"

Checking HXCPP_M64 instead of just HXCPP_ARM64 ensures that all 64-bit
architectures are covered:
https://github.com/HaxeFoundation/hxcpp/blob/10f73c52cb4c82e72df20d012216b1592eff8d28/toolchain/common-defines.xml#L8

* Remove unneeded android compat defs

These became obsolete in 76e4f4eb6e4009f36452f34ba93c7863903a2142, but
some were left in.

* Restrict bsd_signal definition ndks older than r13

The patch is not needed in ndk r13 and above, as the bsd_signal symbol
was restored:
https://android-review.googlesource.com/c/platform/development/+/255054

* Skip unecessary header parsing in AndroidCompat

Release 4.3.164

Choose a tag to compare

@github-actions github-actions released this 08 Sep 18:16
022466f
v4.3.164

Fix fragged rows signed-ness regression (#1392)

Release 4.3.163

Choose a tag to compare

@github-actions github-actions released this 08 Sep 07:34
f05b21c
Fix string hashing for utf16 strings (#1376)

* Fix String::hash for utf16 strings

* [tests] Verify unicode string hashing

* Fix String::calcHash with non-BMP characters

Outside the BMP, characters take two utf16 code units. The old hashing
was incorrect as it would only ever read a single unit at a time, and
therefore calculate the wrong hash for a string containing a non-BMP
character.

The Char16Advance call handles this, ensuring that surrogate pairs are
read as a single code point.

* [tests] Verify non-BMP string hashing

Release 4.3.162

Choose a tag to compare

@github-actions github-actions released this 06 Sep 15:09
a055e16
Fix large object marking regression (#1390)

* Fix large object marking regression

The temporary int variable introduced in
ecda9430111dbefd1f2dba0eb33921b89dad9765 means that the write occurs to
the local variable instead of to the mark byte via the reference to the
header. This meant the gc would fail to mark any large objects and they
would be collected immediately.

* [tests] Add test for large object marking