mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2025-02-02 07:31:38 +01:00
ensure member.dispose is called when removing member
so expiration timer is always stopped
This commit is contained in:
parent
56ecd39f26
commit
7eb8015ace
@ -105,6 +105,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||||||
const memberKey = getMemberKey(member.userId, member.deviceId);
|
const memberKey = getMemberKey(member.userId, member.deviceId);
|
||||||
// only remove expired members from the call if we don't have a peer conn with them
|
// only remove expired members from the call if we don't have a peer conn with them
|
||||||
if (member.isExpired && !member.isConnected) {
|
if (member.isExpired && !member.isConnected) {
|
||||||
|
member.dispose();
|
||||||
this._members.remove(memberKey);
|
this._members.remove(memberKey);
|
||||||
} else {
|
} else {
|
||||||
if (member.isExpired && member.isConnected) {
|
if (member.isExpired && member.isConnected) {
|
||||||
@ -339,6 +340,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||||||
log.wrap({l: "update device membership", id: memberKey, sessionId: device.session_id}, log => {
|
log.wrap({l: "update device membership", id: memberKey, sessionId: device.session_id}, log => {
|
||||||
if (isMemberExpired(device, now)) {
|
if (isMemberExpired(device, now)) {
|
||||||
log.set("expired", true);
|
log.set("expired", true);
|
||||||
|
this._members.get(memberKey)?.dispose();
|
||||||
this._members.remove(memberKey);
|
this._members.remove(memberKey);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -354,6 +356,7 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||||||
if (disconnectLogItem) {
|
if (disconnectLogItem) {
|
||||||
log.refDetached(disconnectLogItem);
|
log.refDetached(disconnectLogItem);
|
||||||
}
|
}
|
||||||
|
member.dispose();
|
||||||
this._members.remove(memberKey);
|
this._members.remove(memberKey);
|
||||||
member = undefined;
|
member = undefined;
|
||||||
}
|
}
|
||||||
@ -462,11 +465,12 @@ export class GroupCall extends EventEmitter<{change: never}> {
|
|||||||
const member = this._members.get(memberKey);
|
const member = this._members.get(memberKey);
|
||||||
if (member) {
|
if (member) {
|
||||||
log.set("leave", true);
|
log.set("leave", true);
|
||||||
this._members.remove(memberKey);
|
|
||||||
const disconnectLogItem = member.disconnect(false);
|
const disconnectLogItem = member.disconnect(false);
|
||||||
if (disconnectLogItem) {
|
if (disconnectLogItem) {
|
||||||
log.refDetached(disconnectLogItem);
|
log.refDetached(disconnectLogItem);
|
||||||
}
|
}
|
||||||
|
member.dispose();
|
||||||
|
this._members.remove(memberKey);
|
||||||
}
|
}
|
||||||
this.emitChange();
|
this.emitChange();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user