Skip to content

Commit 02f105f

Browse files
committed
Merge tag 'sqlite3-2.7.2' into feat/update-upstream-sqlite
2 parents e2118e9 + 135bbb5 commit 02f105f

File tree

3 files changed

+33
-25
lines changed

3 files changed

+33
-25
lines changed

sqlite3/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.7.2
2+
3+
- Web: Fix update events not being delivered in some shared worker setups.
4+
15
## 2.7.1
26

37
- Web: Fix a crash when using version `2.7.0` of this package with an older

sqlite3/lib/src/implementation/database.dart

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -609,38 +609,42 @@ final class _StreamHandlers<T, SyncCallback> {
609609
/// Unregisters the native callback on the database.
610610
final void Function() _unregister;
611611

612-
late final Stream<T> stream = Stream.multi(
613-
(newListener) {
614-
if (_database._isClosed) {
615-
newListener.close();
616-
return;
617-
}
618-
619-
void addListener() {
620-
_addAsyncListener(newListener);
621-
}
612+
Stream<T>? _stream;
622613

623-
void removeListener() {
624-
_removeAsyncListener(newListener);
625-
}
626-
627-
newListener
628-
..onPause = removeListener
629-
..onCancel = removeListener
630-
..onResume = addListener;
631-
// Since this is a onListen callback, add listener now
632-
addListener();
633-
},
634-
isBroadcast: true,
635-
);
614+
Stream<T> get stream => _stream!;
636615

637616
_StreamHandlers({
638617
required DatabaseImplementation database,
639618
required void Function() register,
640619
required void Function() unregister,
641620
}) : _database = database,
642621
_register = register,
643-
_unregister = unregister;
622+
_unregister = unregister {
623+
_stream = Stream.multi(
624+
(newListener) {
625+
if (_database._isClosed) {
626+
newListener.close();
627+
return;
628+
}
629+
630+
void addListener() {
631+
_addAsyncListener(newListener);
632+
}
633+
634+
void removeListener() {
635+
_removeAsyncListener(newListener);
636+
}
637+
638+
newListener
639+
..onPause = removeListener
640+
..onCancel = removeListener
641+
..onResume = addListener;
642+
// Since this is a onListen callback, add listener now
643+
addListener();
644+
},
645+
isBroadcast: true,
646+
);
647+
}
644648

645649
bool get hasListener => _asyncListeners.isNotEmpty || _syncCallback != null;
646650

sqlite3/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: sqlite3
22
description: Provides lightweight yet convenient bindings to SQLite by using dart:ffi
3-
version: 2.7.1
3+
version: 2.7.2
44
homepage: https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3
55
issue_tracker: https://github.com/simolus3/sqlite3.dart/issues
66

0 commit comments

Comments
 (0)