summaryrefslogtreecommitdiff
path: root/Runtime/Export/Serialization/ManagedLivenessAnalysis.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Export/Serialization/ManagedLivenessAnalysis.txt')
-rw-r--r--Runtime/Export/Serialization/ManagedLivenessAnalysis.txt67
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
+}