Пример #1
0
 public static unsafe void CopyElements(void *pDst, void *pSrc, int srcLength, int srcIndex, int elementCount, int elementSize)
 {
     if ((pDst == null) || (pSrc == null))
     {
         ExceptionUtil.ThrowArgumentNullException();
     }
     if (((srcLength < 0) || (srcIndex < 0)) || (((elementCount < 0) || (elementSize < 1)) || ((srcIndex + elementCount) > srcLength)))
     {
         ExceptionUtil.ThrowArgumentOutOfRangeException();
     }
     if (elementCount != 0)
     {
         Buffer.MemoryCopy(pSrc + ((void *)(srcIndex * elementSize)), pDst, (long)(elementCount * elementSize), (long)(elementCount * elementSize));
     }
 }
Пример #2
0
        public static IDisposable Combine(IDisposable first, IDisposable second, bool errorOnFinalize = false)
        {
            if ((first == null) && (second == null))
            {
                ExceptionUtil.ThrowArgumentNullException((first == null) ? "first" : "second", "either first or second may be null, but not both");
            }
            if ((first != null) && (second != null))
            {
                return(FromAction(delegate {
                    DisposableUtil.Free <IDisposable>(ref first);
                    DisposableUtil.Free <IDisposable>(ref second);
                }, errorOnFinalize));
            }
            IDisposable disposable = first ?? second;

            return(FromAction(delegate {
                DisposableUtil.Free <IDisposable>(ref disposable);
            }, errorOnFinalize));
        }