You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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]>