diff options
Diffstat (limited to 'Runtime/Export/Serialization/ManagedLivenessAnalysis.txt')
-rw-r--r-- | Runtime/Export/Serialization/ManagedLivenessAnalysis.txt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Runtime/Export/Serialization/ManagedLivenessAnalysis.txt b/Runtime/Export/Serialization/ManagedLivenessAnalysis.txt new file mode 100644 index 0000000..4f9800e --- /dev/null +++ b/Runtime/Export/Serialization/ManagedLivenessAnalysis.txt @@ -0,0 +1,67 @@ +C++RAW +#include "UnityPrefix.h" +#include "Configuration/UnityConfigure.h" +#include "Runtime/Mono/MonoBehaviour.h" +#if ENABLE_SERIALIZATION_BY_CODEGENERATION +#include "Runtime/Mono/MonoBehaviourSerialization_ByCodeGeneration.h" +#endif + +CSRAW +using System; +using System.Collections.Generic; +using UnityEngine; +using Object=UnityEngine.Object; +using System.Runtime.CompilerServices; + +namespace UnityEngine.Serialization +{ + +CONDITIONAL ENABLE_SERIALIZATION_BY_CODEGENERATION +CLASS public ManagedLivenessAnalysis : IManagedLivenessAnalysis + + CSRAW public static IManagedLivenessAnalysis Instance = null; + CSRAW public readonly HashSet<int> _state = new HashSet<int>(); + + CSRAW public static void Init() + { + if(Instance == null) + Instance = new ManagedLivenessAnalysis(); + } + CSRAW public static void ResetState() + { + Instance.Reset(); + } + CSRAW public static void SetInstance(IManagedLivenessAnalysis analysis) + { + Instance = analysis; + } + CSRAW public void Reset() + { + ((ManagedLivenessAnalysis)Instance)._state.Clear(); + } + CSRAW public bool HasBeenProcessed(object value) + { + return !_state.Add(RuntimeHelpers.GetHashCode(value)); + } + CSRAW public object GetNewInstanceToReplaceOldInstance(object value) + { + return INTERNAL_GetNewInstanceToReplaceOldInstance(((UnityEngine.Object)value).GetInstanceID()); + } + + THREAD_SAFE + CUSTOM private static object INTERNAL_GetNewInstanceToReplaceOldInstance(int instance_id) + { + return NativeExt_MonoBehaviourSerialization_GetNewInstanceToReplaceOldInstance(instance_id); + } + +END + +CONDITIONAL !ENABLE_SERIALIZATION_BY_CODEGENERATION && UNITY_WINRT +CLASS public ManagedLivenessAnalysis + CSRAW public static void SetInstance(IManagedLivenessAnalysis analysis) + { + } +END + +CSRAW +} |