Skip to content

Commit 1321650

Browse files
committed
Make wasm functions for commit hooks optional
1 parent c038478 commit 1321650

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

sqlite3/lib/src/wasm/wasm_interop.dart

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ class WasmBindings {
3333
_register_vfs,
3434
_unregister_vfs,
3535
_update_hooks,
36-
_commit_hooks,
37-
_rollback_hooks,
3836
_sqlite3_libversion,
3937
_sqlite3_sourceid,
4038
_sqlite3_libversion_number,
@@ -85,7 +83,13 @@ class WasmBindings {
8583
_sqlite3_stmt_readonly,
8684
_sqlite3_stmt_isexplain;
8785

88-
final JSFunction? _sqlite3_db_config, _sqlite3_initialize;
86+
// The released WASM bundle only exposes functions referenced in this file.
87+
// So, when we release a new version of `package:sqlite3` using additional
88+
// functions, we can't assume that existing bundles also have those functions.
89+
final JSFunction? _sqlite3_db_config,
90+
_sqlite3_initialize,
91+
_commit_hooks,
92+
_rollback_hooks;
8993

9094
final Global _sqlite3_temp_directory;
9195

@@ -105,8 +109,6 @@ class WasmBindings {
105109
_register_vfs = instance.functions['dart_sqlite3_register_vfs']!,
106110
_unregister_vfs = instance.functions['sqlite3_vfs_unregister']!,
107111
_update_hooks = instance.functions['dart_sqlite3_updates']!,
108-
_commit_hooks = instance.functions['dart_sqlite3_commits']!,
109-
_rollback_hooks = instance.functions['dart_sqlite3_rollbacks']!,
110112
_sqlite3_libversion = instance.functions['sqlite3_libversion']!,
111113
_sqlite3_sourceid = instance.functions['sqlite3_sourceid']!,
112114
_sqlite3_libversion_number =
@@ -165,6 +167,8 @@ class WasmBindings {
165167
_sqlite3_stmt_readonly = instance.functions['sqlite3_stmt_readonly']!,
166168
_sqlite3_db_config = instance.functions['dart_sqlite3_db_config_int'],
167169
_sqlite3_initialize = instance.functions['sqlite3_initialize'],
170+
_commit_hooks = instance.functions['dart_sqlite3_commits'],
171+
_rollback_hooks = instance.functions['dart_sqlite3_rollbacks'],
168172
_sqlite3_temp_directory = instance.globals['sqlite3_temp_directory']!
169173

170174
// Note when adding new fields: We remove functions from the wasm module that
@@ -292,12 +296,12 @@ class WasmBindings {
292296
_update_hooks.callReturningVoid2(db.toJS, id.toJS);
293297
}
294298

295-
int dart_sqlite3_commits(Pointer db, int id) {
296-
return _commit_hooks.callReturningInt2(db.toJS, id.toJS);
299+
void dart_sqlite3_commits(Pointer db, int id) {
300+
return _commit_hooks!.callReturningVoid2(db.toJS, id.toJS);
297301
}
298302

299303
void dart_sqlite3_rollbacks(Pointer db, int id) {
300-
return _rollback_hooks.callReturningVoid2(db.toJS, id.toJS);
304+
return _rollback_hooks!.callReturningVoid2(db.toJS, id.toJS);
301305
}
302306

303307
int sqlite3_exec(Pointer db, Pointer sql, Pointer callback,

0 commit comments

Comments
 (0)