branchFacepunch.Hotload/mastercancel
22 Commits over 153 Days - 0.01cph!
Changes from sandbox
* Defer HotloadFinish until all references are updated
* Catch and log exceptions thrown by INotice
* Allow skipping on instances not being swapped (use with caution)
* Throw NIE if an array doesn't start at 0
Fix instance count for arrays
Remove redundant null checks, don't use new modifier
Fix the handling of boxed structs
Add tests for self-referencing things, two failing due to struct behavior
Better timing logging for arrays of reference types
Added test case of large object reference networks
Better HasStructChanged logging, added HashSet<>.Slot as a safe generic struct
Special case for dictionaries of primitive types / strings
Added warning in case of an exception in HasStructChangedUncached
Timing data now shows which structs are deep copied
Added test case reproducing a case where a struct is wrongly deep copied
Made struct tests stricter
Fixed FieldTest5 finally :star:
Test for structs defined in a non-hotloaded assembly
Fixed arrays of structs defined in non-hotloaded assemblies always being deep copied
Early out for some struct array types
Added generic struct array test cases
Fix for known generic struct cases
Less robust safety check in HasStructChangedUncached
More robust safety check in HasStructChangedUncached
Started work on performance improvements for large struct arrays
Added verification that struct values are correct to performance test
Struct arrays are now block copied if the struct type is unchanged
Added struct array performance test
Update delegates when the target changes
Timing now counts each element in a struct array
Cleanup static field replacement, skip static compiler generated types
Bringing changes over from SandboxGame
Hope MyGet still has 3.5 SDK
Update project files, add test for recent issue, also fix NRE in DelegateTest7 because ctor didn't assign all fields