Merge pull request #388 from vector-im/bwindels/dontassumelocalentriesexists
Prevent 2 more small races between room sync and openTimeline
This commit is contained in:
commit
65eb1f7b7d
1 changed files with 6 additions and 4 deletions
|
@ -32,7 +32,8 @@ export class Timeline {
|
|||
this._disposables = new Disposables();
|
||||
this._pendingEvents = pendingEvents;
|
||||
this._clock = clock;
|
||||
this._remoteEntries = null;
|
||||
// constructing this early avoid some problem while sync and openTimeline race
|
||||
this._remoteEntries = new SortedArray((a, b) => a.compare(b));
|
||||
this._ownMember = null;
|
||||
this._timelineReader = new TimelineReader({
|
||||
roomId: this._roomId,
|
||||
|
@ -96,7 +97,6 @@ export class Timeline {
|
|||
}
|
||||
|
||||
_setupEntries(timelineEntries) {
|
||||
this._remoteEntries = new SortedArray((a, b) => a.compare(b));
|
||||
this._remoteEntries.setManySorted(timelineEntries);
|
||||
if (this._pendingEvents) {
|
||||
this._localEntries = new MappedList(this._pendingEvents, pe => {
|
||||
|
@ -159,7 +159,9 @@ export class Timeline {
|
|||
// Once the subscription is setup, MappedList will set up the local
|
||||
// relations as needed with _applyAndEmitLocalRelationChange,
|
||||
// so we're not missing anything by bailing out.
|
||||
if (!this._localEntries.hasSubscriptions) {
|
||||
//
|
||||
// _localEntries can also not yet exist
|
||||
if (!this._localEntries?.hasSubscriptions) {
|
||||
return;
|
||||
}
|
||||
// find any local relations to this new remote event
|
||||
|
@ -301,4 +303,4 @@ export function tests() {
|
|||
assert.equal(Array.from(timeline.entries)[0].isRedacting, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue