Beispiel #1
0
 internal JniNativeMethod[] ToJniNativeMethodArray(out DelegatePin[] pins)
 {
     JniNativeMethod[] outArray = new JniNativeMethod[mEntries.Count];
     pins = new DelegatePin[0];
     List<DelegatePin> tempPins = new List<DelegatePin>();
     for (int i = 0; i < mEntries.Count; i++)
     {
         JniNativeMethodEntry entry = (JniNativeMethodEntry)mEntries[i];
         DelegatePin pin = new DelegatePin(entry.functionDelegate, entry.name+":"+entry.signature);
         outArray[i] = new JniNativeMethod(entry.name, entry.signature, pin.ToFunctionPointer());
         tempPins.Add(pin);
     }
     pins = tempPins.ToArray();
     return outArray;
 }
Beispiel #2
0
 internal static void AddDelegatePins(DelegatePin[] pins)
 {
     foreach (DelegatePin pin in pins)
     {
         AddDelegatePin(pin);
     }
 }
Beispiel #3
0
 private static IntPtr CreateVMHook(Delegate theDelegate, string name)
 {
     DelegatePin pin = new DelegatePin(theDelegate, name);
     AddDelegatePin(pin);
     return pin.ToFunctionPointer();
 }
Beispiel #4
0
 internal static void AddDelegatePin(DelegatePin pin)
 {
     lock (mPinnedDelegates)
     {
         mPinnedDelegates[pin.Name] = pin;
     }
 }