Example #1
0
        internal static Int8Array TryGetFromCache(IntPtr native)
        {
            if (native == null)
            {
                return(null);
            }

            if (cacheRepo.ContainsKey(native))
            {
                Int8Array cacheRet;
                cacheRepo[native].TryGetTarget(out cacheRet);
                if (cacheRet != null)
                {
                    cbg_Int8Array_Release(native);
                    return(cacheRet);
                }
                else
                {
                    cacheRepo.Remove(native);
                }
            }

            var newObject = new Int8Array(new MemoryHandle(native));

            cacheRepo[native] = new WeakReference <Int8Array>(newObject);
            return(newObject);
        }
Example #2
0
        public Int8Array GetBuffer()
        {
            var ret = cbg_StaticFile_GetBuffer(selfPtr);

            return(Int8Array.TryGetFromCache(ret));
        }
Example #3
0
        public Int8Array GetTempBuffer()
        {
            var ret = cbg_StreamFile_GetTempBuffer(selfPtr);

            return(Int8Array.TryGetFromCache(ret));
        }
Example #4
0
 public void CopyTo(Int8Array array, int size)
 {
     cbg_Int8Array_CopyTo(selfPtr, array != null ? array.selfPtr : IntPtr.Zero, size);
 }