Cloning Rewrite WiP
Tweaks
#FIX: Fixed wrong pragma statements.
Cloning Rewrite WiP
#ADD: Introduced CloneFlags.
#ADD: Specified interfaces ICloneExplicit, ICloneTargetSetup and ICloneOperation for explicit cloning.
#REMOVE: Removed explicit cloning from all physics Joint- and ShapeInfos.
#REMOVE: Removed explicit cloning from some other objects as well.
Cloning Rewrite WiP
#CHANGE: CloneFieldFlags are now distinct from CloneBehavior, and specifically aimed at Fields.
Cloning Rewrite WiP
#ADD: Added ICloneExplicit support and updated the interface definition to fit use cases better.
#CHANGE: Moved all CloneProviderTest helper classes to their own namespace and distinct files.
Cloning Performance Test
#ADD: Added informative cloning performance test to the Unit Testing project. Always passes, bug logs a time for reference.
Unit Testing Tweaks
#CHANGE: The CloneProvider TestObject helper class now has an empty default constructor to keep the overhead minimal for performance testing.
Maintenance
#ADD: Added some ReflectionHelper tests.
#CHANGE: Improved ReflectionHelper Type resolve performance on startup by reusing already resolved Type information in a better way.
#CHANGE: Improved ReflectionHelper CreateInstanceOf performance by using cached delegates.
#CHANGE: Moved some serialization-specific functionality out of ReflectionHelper into the Formatter class.
Cloning Rewrite WiP
#ADD: Added surrogate support to the new cloning system.
#ADD: Updated all existing surrogates to the new interface.
#ADD: Added a specific test for cloning delegates. It fails.
Cloning Rewrite WiP
#ADD: Added a mechanic for surrogates to defer object creation until after the setup step.
#CHANGE: Reimplemented DelegateSurrogate without those hacky reflection practices.
#CHANGE: Delegates now behave like weak references when cloning.
Unit Testing
#ADD: Added a mechanism to automatically compare numeric test results to previous ones on the same machine and configuration.
#ADD: Added PerformanceTest to serialization tests.
#ADD: Added comparison mechanism to all performance tests.
Unit Testing Tweaks and Bugfixes
#CHANGE: Performance testing results are now compared to the local average of the 10 last tests.
#FIX: Fixed a bug in performance measurement display during Unit Testing.
Cloning Rewrite WiP
#CHANGE: Replaced old OnCopyTo implementation for Resources and Components with one for the new system.
#REMOVE: Removed explicit OnCopyTo wherever possible.
#REMOVE: Removed redundant CloneProvider.DeepClone and CloneProvider.DeepCopyTo static methods in favor of their extension method variant.
Cloning Tweaks
#ADD: NonSerialized fields are skipped during cloning by default. They are cloned anyway when flagged with CloneFieldFlags.DontSkip.
#CHANGE: Removed a lot of redundant attributes due to the NonSerialized behavior addition.
Cloning Performance
#ADD: Added CloneType caching to cloning system, similar to SerializeType of the serialization system.
Cloning Performance
#CHANGE: Minor cloning performance improvements.
Cloning Performance
#CHANGE: Major cloning performance improvements based on behavior and surrogate caching and a faster dictionary surrogate implementation.
Cloning Performance
#CHANGE: Some more cloning performance improvements by improved "handled object" set usage and using precompiled expression trees for larger field assignments.
Bugfixes
#FIX: Fixed Transform not registering to parent events when being cloned.
Bugfixes, Tweaks
#CHANGE: Renamed abstract Surrogate classes to CloneSurrogate and SerializeSurrogate to avoid naming conflicts.
#FIX: Fixed CloneProvider.CopyTo not properly scanning the source objects graph when a target was pre-specified.