Skip to content

Commit 8e55cf6

Browse files
chkuang-ga-maurice
authored andcommitted
Fix the issue that listener event is not triggered after calling UpdateChildren()
The issue is 1. The listener event will not be triggered if there is any pending writes requests 2. The pending writes record was not removed properly because UserWriteRecord is std::moved and WriteTree::RemoveWrite() still need it. PiperOrigin-RevId: 277964067
1 parent 0c14d09 commit 8e55cf6

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

database/src/desktop/core/sync_tree.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ std::vector<Event> SyncTree::AckUserWrite(WriteId write_id, AckStatus revert,
5353
if (persist) {
5454
this->persistence_manager_->RemoveUserWrite(write_id);
5555
}
56-
// Need to move the write out, as it is about to be deleted.
57-
UserWriteRecord write = std::move(*pending_write_tree_->GetWrite(write_id));
56+
// Make a copy of the write, as it is about to be deleted.
57+
UserWriteRecord write = *pending_write_tree_->GetWrite(write_id);
5858
bool need_to_reevaluate = pending_write_tree_->RemoveWrite(write_id);
5959
if (write.visible) {
6060
if (!revert) {

0 commit comments

Comments
 (0)