public int CreateCollation(IDbHandle db, ICollation collation) { var internalDbHandle = (DbHandle)db; var compareCallbackExecutor = new CompareCallbackExecutor( collation, SQLiteApiGenericInternal.GetCompareCallbackStringBytes); var func = new SQLiteApiGenericInternal.CompareCallback(compareCallbackExecutor.Execute); _allocatedGCHandles.Add(GCHandle.Alloc(func)); return(SQLiteApiGenericInternal.sqlite3_create_collation( internalDbHandle.DbPtr, Encoding.UTF8.GetBytes(collation.Name), SQLiteEncodings.SQLITE_UTF8, IntPtr.Zero, func)); }