void Dispose(bool disposing) { var disposed = Disposed; if (disposed) { return; } Disposed = true; if (disposing) { // free managed } // free unmanaged if (OwnsHandle) { var handle = Handle; if (handle != IntPtr.Zero) { Handle = IntPtr.Zero; Native.leveldb_free(handle); } } }