Пример #1
0
 protected override void EmitCleanupManaged(ILCodeStream codeStream)
 {
     LoadManagedAddr(codeStream);
     codeStream.Emit(ILOpcode.ldfld, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetHandleRef(Context).GetKnownField("_wrapper")));
     codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetGC(Context).GetKnownMethod("KeepAlive", null)));
 }
Пример #2
0
 protected override void AllocAndTransformManagedToNative(ILCodeStream codeStream)
 {
     LoadManagedAddr(codeStream);
     codeStream.Emit(ILOpcode.ldfld, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetHandleRef(Context).GetKnownField("_handle")));
     StoreNativeValue(codeStream);
 }