public void NativeFree(IntPtr nat) { if (nat != IntPtr.Zero) { MemoryNative.Free(nat); } }
/// <summary>Returns an enumerator that iterates throught this accessor.</summary> /// <returns>An enumerator to walk through the acessor items.</returns> public IEnumerator <T> GetEnumerator() { if (Handle == IntPtr.Zero) { throw new ObjectDisposedException(base.GetType().Name); } IntPtr tmp = MemoryNative.Alloc(Marshal.SizeOf(typeof(IntPtr))); uint position = 0; try { while (eina_accessor_data_get(Handle, position, tmp)) { IntPtr data = (IntPtr)Marshal.PtrToStructure(tmp, typeof(IntPtr)); yield return(Convert(data)); position += 1; } } finally { MemoryNative.Free(tmp); } }
protected virtual void Dispose(bool disposing) { if (!Disposed && ShouldFree) { MemoryNative.Free(this.Handle); } Disposed = true; }
public void NativeFreeInlistNode(IntPtr nat, bool freeElement) { if (nat == IntPtr.Zero) { return; } if (freeElement) { NativeFreeInlistNodeElement(nat); } MemoryNative.Free(nat); }
public static IntPtr ManagedStringToNativeUtf8Alloc(string managedString) { if (managedString == null) { return(IntPtr.Zero); } byte[] strbuf = Encoding.UTF8.GetBytes(managedString); IntPtr native = MemoryNative.Alloc(strbuf.Length + 1); try { Marshal.Copy(strbuf, 0, native, strbuf.Length); Marshal.WriteByte(native + strbuf.Length, 0); // write the terminating null return(native); } catch (Exception) { MemoryNative.Free(native); throw; } }
public void NativeFreeInlistNode(IntPtr nat, bool freeElement) { MemoryNative.Free(nat); }
public void NativeFree(IntPtr nat) { MemoryNative.Free(nat); }