mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-04-21 23:08:52 -04:00
- Updated our native lz4 library to the latest version - Exposed a few lz4 glue functions to managed - Use native glue instead of K4os.Compression.LZ4 - Get rid of K4os.Compression.LZ4 dependency - Should be a bit faster overall (2x in some tests) - Gets rid of a dependency - C version of LZ4 is maintained - K4os.Compression.LZ4 is not maintained
Class Attributes: [Handles:Sandbox.ManagedTypeName] Set a class to use a handle system. A good example here is Sandbox.PhysicsBody. On creation we call a managed function to get a handle (an int) and we store that in the IPhysicsBody in native. Any time we pass a IPhysicsBody from native to managed, we pass the int and look up the real object. In the constructor of the physics object in native we call into native to destroy the handle. Which ensures that the pointer is cleared and can't try to be used.