Skip to content

Commit ff45999

Browse files
committed
* fix for Unity 2017
* fix GC for ArrayIndexer
1 parent 16a5b01 commit ff45999

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
{
22
"name": "Xlua.Core.Editor",
33
"references": [
4-
"GUID:5b37a11e6fbbe2542aa3580b9973df17"
4+
"Xlua.Core"
55
],
66
"includePlatforms": [
77
"Editor"
88
],
9-
"excludePlatforms": [],
10-
"allowUnsafeCode": false,
11-
"overrideReferences": false,
12-
"precompiledReferences": [],
13-
"autoReferenced": true,
14-
"defineConstraints": [],
15-
"versionDefines": [],
16-
"noEngineReferences": false
9+
"excludePlatforms": []
1710
}

Assets/XLua/Src/InternalGlobals.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ internal static bool Gen_Flag
7676
return initState == 1;
7777
}
7878
}
79+
80+
internal static Delegate ConvertDelegate(Delegate sourceDelegate, Type targetType)
81+
{
82+
return Delegate.CreateDelegate(targetType, sourceDelegate.Target, sourceDelegate.Method);
83+
}
84+
7985
internal static void Init()
8086
{
8187
if(Interlocked.CompareExchange(ref initState, 0, -1) != -1)
@@ -91,8 +97,8 @@ internal static void Init()
9197
var parameters = new object[] {null, null, null};
9298
Init.Invoke(null, parameters);
9399
extensionMethodMap = parameters[0] as Dictionary<Type, IEnumerable<MethodInfo>>;
94-
genTryArrayGetPtr = parameters[1] as TryArrayGet;
95-
genTryArraySetPtr = parameters[2] as TryArraySet;
100+
genTryArrayGetPtr = ConvertDelegate(parameters[1] as Delegate, typeof(TryArrayGet)) as TryArrayGet;
101+
genTryArraySetPtr = ConvertDelegate(parameters[2] as Delegate, typeof(TryArraySet)) as TryArraySet;
96102
}
97103
}
98104

0 commit comments

Comments
 (0)