@@ -34,8 +34,6 @@ final supportsPrepareV3 = sqlite3_libversion_number() >= _firstVersionForV3;
3434final supportsErrorOffset =
3535 sqlite3_libversion_number () >= _firstVersionForErrorOffset;
3636
37- final databaseFinalizer = NativeFinalizer (addresses.sqlite3_close_v2.cast ());
38- final statementFinalizer = NativeFinalizer (addresses.sqlite3_finalize.cast ());
3937final sessionDeleteFinalizer = NativeFinalizer (
4038 addresses.sqlite3session_delete.cast (),
4139);
@@ -210,7 +208,7 @@ final class FfiBindings implements RawSqliteBindings {
210208 }
211209
212210 @override
213- SqliteResult <RawSqliteDatabase ? > sqlite3_open_v2 (
211+ SqliteResult <RawSqliteDatabase > sqlite3_open_v2 (
214212 String name,
215213 int flags,
216214 String ? zVfs,
@@ -227,10 +225,7 @@ final class FfiBindings implements RawSqliteBindings {
227225 flags,
228226 vfsPtr,
229227 );
230- final result = (
231- resultCode: resultCode,
232- result: outDb.isNullPointer ? null : FfiDatabase (outDb.value),
233- );
228+ final result = SqliteResult (resultCode, FfiDatabase (outDb.value));
234229
235230 namePtr.free ();
236231 outDb.free ();
@@ -745,10 +740,7 @@ final class FfiChangesetIterator implements RawChangesetIterator, Finalizable {
745740 final value = outValue.value;
746741 outValue.free ();
747742
748- return (
749- resultCode: result,
750- result: value.isNullPointer ? null : FfiValue (value),
751- );
743+ return SqliteResult (result, value.isNullPointer ? null : FfiValue (value));
752744 }
753745
754746 @override
@@ -767,10 +759,7 @@ final class FfiChangesetIterator implements RawChangesetIterator, Finalizable {
767759 final value = outValue.value;
768760 outValue.free ();
769761
770- return (
771- resultCode: result,
772- result: value.isNullPointer ? null : FfiValue (value),
773- );
762+ return SqliteResult (result, value.isNullPointer ? null : FfiValue (value));
774763 }
775764
776765 @override
@@ -811,21 +800,17 @@ final class FfiChangesetIterator implements RawChangesetIterator, Finalizable {
811800 }
812801}
813802
814- final class FfiDatabase implements RawSqliteDatabase , Finalizable {
803+ final class FfiDatabase implements RawSqliteDatabase {
815804 final Pointer <sqlite3> db;
816- final Object detachToken = Object ();
817805
818806 NativeCallable <_UpdateHook >? _installedUpdateHook;
819807 NativeCallable <_CommitHook >? _installedCommitHook;
820808 NativeCallable <_RollbackHook >? _installedRollbackHook;
821809
822- FfiDatabase (this .db) {
823- databaseFinalizer.attach (this , db.cast (), detach: detachToken);
824- }
810+ FfiDatabase (this .db);
825811
826812 @override
827813 int sqlite3_close_v2 () {
828- databaseFinalizer.detach (detachToken);
829814 return libsqlite3.sqlite3_close_v2 (db);
830815 }
831816
@@ -1100,19 +1085,16 @@ final class FfiStatementCompiler implements RawStatementCompiler {
11001085 final stmt = stmtOut.value;
11011086 final libraryStatement = stmt.isNullPointer ? null : FfiStatement (stmt);
11021087
1103- return (resultCode : result, result : libraryStatement);
1088+ return SqliteResult ( result, libraryStatement);
11041089 }
11051090}
11061091
1107- final class FfiStatement implements RawSqliteStatement , Finalizable {
1092+ final class FfiStatement implements RawSqliteStatement {
11081093 final Pointer <sqlite3_stmt> stmt;
1109- final Object detachToken = Object ();
11101094
11111095 final List <Pointer > _allocatedArguments = [];
11121096
1113- FfiStatement (this .stmt) {
1114- statementFinalizer.attach (this , stmt.cast (), detach: detachToken);
1115- }
1097+ FfiStatement (this .stmt);
11161098
11171099 @visibleForTesting
11181100 List <Pointer > get allocatedArguments => _allocatedArguments;
@@ -1256,7 +1238,6 @@ final class FfiStatement implements RawSqliteStatement, Finalizable {
12561238
12571239 @override
12581240 void sqlite3_finalize () {
1259- statementFinalizer.detach (detachToken);
12601241 libsqlite3.sqlite3_finalize (stmt);
12611242 }
12621243
0 commit comments