Skip to content

Release 4.3.104

Choose a tag to compare

@github-actions github-actions released this 13 Dec 21:37
· 9 commits to master since this release
617aed2
Marshalling Types (#1189)

* Add marshal header for value type interop

* finalise boxed objects if the type has a destructor

* works with static cast

* add value type tests

* move more conversion functions to reference class

* forward declare everything to avoid order issues

* ValueType construction from boxed pointer

* ValueType no longer inherits from struct

* marshal reference interop with existing pointer types

* Fix trying to dereference a null pointer when creating a boxed object from a reference

* add compare traits specialisation for reference null check

* consistent null checking and throwing

* raise exceptions when value types are assigned null

* reference equality operations

* remove no return

* remove some un-needed constructors

* Make constructors use more templates and use reinterpret cast

* use tagged dispatch

* support pointer types being held in value type helper

* Add new marshal pointer type

* rename marshal types in prep for more pointer stuff

* support reinterpreting value type references

* seemingly working pointer marshalling types

* better null checking with pointer references

* add marshalling tests

* Add pointer collection tests

* Move enums into header files

* test abstract around pointers

* Pointer type changes

* add pointer reference to pointer casting

* add null test to pointer access

* add test for vector of value types

* add tests showing weird null behaviour

* move marshalling tests to existing native tests

* initial managed extern tests

* managed extern local tests for two different naming schemes

* reduce test duplication

* Add tests for classes holding managed externs

* change tests so that static functions are tested

* un-private point

* let enum abstract include meta handle it

* remove analyser meta

* Fix test related to recent pointer changes

* Add pointer ctor overload

* view marshalling type

* Change to value semantics

* Add view tests

* Update some tests

* String marshalling functions

* Marshalling tests

* view based string creation and support char16_t in various hxcpp types

* Marshalling string tests

* const ref a bit

* Don't use byte size in copyTo comparison check

* view extension tests

* Split across multiple headers

* typed read and write helper functions

* Add compare function

* cstring to view conversion function, and allow null pointers

* Add view to pointer conversions

* View length is now size_t

* Add endian specific read and write marshal functions

* Add OOB checks

* change the public api to use int64_t over size_t

* Fix string from view conversions to properly use the view length

* Add OOB exception tests

* bound check read and write

* make sure view write index is int64_t

* add tests for exceptions when reading or writing to small views

* guard including new marshal headers

* fix dodgy conditional

---------

Co-authored-by: Aidan Lee <[email protected]>