internal AsAnyMarshaler(IntPtr pvArrayMarshaler)
 {
     this.pvArrayMarshaler = pvArrayMarshaler;
     this.backPropAction   = BackPropAction.None;
     this.layoutType       = null;
     this.cleanupWorkList  = null;
 }
 internal static void DestroyCleanupList(ref CleanupWorkList pCleanupWorkList)
 {
     if (pCleanupWorkList != null)
     {
         pCleanupWorkList.Destroy();
         pCleanupWorkList = null;
     }
 }
 internal static void DestroyCleanupList(ref CleanupWorkList pCleanupWorkList)
 {
     if (pCleanupWorkList != null)
     {
         pCleanupWorkList.Destroy();
         pCleanupWorkList = null;
     }
 }
예제 #4
0
 internal static void DestroyCleanupList(ref CleanupWorkList pCleanupWorkList)
 {
     if (pCleanupWorkList == null)
     {
         return;
     }
     pCleanupWorkList.Destroy();
     pCleanupWorkList = (CleanupWorkList)null;
 }
 internal static IntPtr AddToCleanupList(ref CleanupWorkList pCleanupWorkList, SafeHandle handle)
 {
     if (pCleanupWorkList == null)
     {
         pCleanupWorkList = new CleanupWorkList();
     }
     CleanupWorkListElement elem = new CleanupWorkListElement(handle);
     pCleanupWorkList.Add(elem);
     return SafeHandleAddRef(handle, ref elem.m_owned);
 }
        internal static IntPtr AddToCleanupList(ref CleanupWorkList pCleanupWorkList, SafeHandle handle)
        {
            if (pCleanupWorkList == null)
            {
                pCleanupWorkList = new CleanupWorkList();
            }
            CleanupWorkListElement elem = new CleanupWorkListElement(handle);

            pCleanupWorkList.Add(elem);
            return(SafeHandleAddRef(handle, ref elem.m_owned));
        }
        internal static IntPtr AddToCleanupList(ref CleanupWorkList pCleanupWorkList, SafeHandle handle)
        {
            if (pCleanupWorkList == null)
            {
                pCleanupWorkList = new CleanupWorkList();
            }
            CleanupWorkListElement cleanupWorkListElement = new CleanupWorkListElement(handle);

            pCleanupWorkList.Add(cleanupWorkListElement);
            return(StubHelpers.SafeHandleAddRef(handle, ref cleanupWorkListElement.m_owned));
        }
 internal static extern void ConvertToNative(IntPtr dst, IntPtr src, IntPtr pMT, ref CleanupWorkList pCleanupWorkList);
 internal static extern unsafe void FmtClassUpdateNativeInternal(object obj, byte *pNative, ref CleanupWorkList pCleanupWorkList);
 internal static extern void ConvertToNative(IntPtr dst, IntPtr src, IntPtr pMT, ref CleanupWorkList pCleanupWorkList);
 internal static extern unsafe void FmtClassUpdateNativeInternal(object obj, byte* pNative, ref CleanupWorkList pCleanupWorkList);
예제 #12
0
        internal AsAnyMarshaler(IntPtr pvArrayMarshaler)
        {
            // we need this in case the value being marshaled turns out to be array
            BCLDebug.Assert(pvArrayMarshaler != IntPtr.Zero, "pvArrayMarshaler must not be null"); 

            this.pvArrayMarshaler = pvArrayMarshaler; 
            this.backPropAction = BackPropAction.None; 
            this.layoutType = null;
            this.cleanupWorkList = null; 
        }
예제 #13
0
        static internal IntPtr AddToCleanupList(ref CleanupWorkList pCleanupWorkList, SafeHandle handle) 
        {
            if (pCleanupWorkList == null) 
                pCleanupWorkList = new CleanupWorkList();

            CleanupWorkListElement element = new CleanupWorkListElement(handle);
            pCleanupWorkList.Add(element); 

            // element.m_owned will be true iff the AddRef succeeded 
            return SafeHandleAddRef(handle, ref element.m_owned); 
        }