@@ -26,7 +26,7 @@ import { CallMembership } from "./CallMembership.ts";
2626import { RoomStateEvent } from "../models/room-state.ts" ;
2727import { MembershipManager , StickyEventMembershipManager } from "./MembershipManager.ts" ;
2828import { type CallMembershipIdentityParts , EncryptionManager , type IEncryptionManager } from "./EncryptionManager.ts" ;
29- import { deepCompare , logDurationSync } from "../utils.ts" ;
29+ import { logDurationSync } from "../utils.ts" ;
3030import type {
3131 Statistics ,
3232 RTCNotificationType ,
@@ -326,7 +326,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
326326 */
327327 public static async sessionMembershipsForSlot (
328328 room : Pick < Room , "getLiveTimeline" | "roomId" | "hasMembershipState" | "_unstable_getStickyEvents" > ,
329- slotDescription : SlotDescription ,
329+ slotId : string ,
330330 // default both true this implied we combine sticky and state events for the final call state
331331 // (prefer sticky events in case of a duplicate)
332332 options : SessionMembershipsForSlotOpts = DEFAULT_SESSION_MEMBERSHIPS_FOR_SLOT_OPTS ,
@@ -337,7 +337,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
337337 const callMemberships = await computeBackendIdentityAndVerifyMemberEvents (
338338 room ,
339339 callMemberEvents ,
340- slotDescription ,
340+ slotId ,
341341 logger ,
342342 ) ;
343343
@@ -807,7 +807,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
807807
808808 this . memberships = await MatrixRTCSession . sessionMembershipsForSlot (
809809 this . room ,
810- this . slotDescription ,
810+ slotDescriptionToId ( this . slotDescription ) ,
811811 this . calculateMembershipsOpts ,
812812 ) ;
813813
@@ -857,7 +857,7 @@ export class MatrixRTCSession extends TypedEventEmitter<
857857async function computeBackendIdentityAndVerifyMemberEvents (
858858 room : Pick < Room , "hasMembershipState" > ,
859859 callMemberEvents : MatrixEvent [ ] ,
860- slotDescription : SlotDescription ,
860+ slotId : string ,
861861 logger : Logger ,
862862) : Promise < CallMembership [ ] > {
863863 const callMemberships : CallMembership [ ] = [ ] ;
@@ -881,7 +881,7 @@ async function computeBackendIdentityAndVerifyMemberEvents(
881881 logger ,
882882 ) ;
883883
884- if ( isValidMembership ( membership , room , slotDescription , logger ) ) {
884+ if ( isValidMembership ( membership , room , slotId , logger ) ) {
885885 callMemberships . push ( membership ) ;
886886 }
887887 } catch ( e ) {
@@ -914,12 +914,12 @@ function quickFilterNonRelevantContents(content: IContent, logger: Logger): bool
914914function isValidMembership (
915915 membership : CallMembership ,
916916 room : Pick < Room , "hasMembershipState" > ,
917- slotDescription : SlotDescription ,
917+ slotId : string ,
918918 logger : Logger ,
919919) : boolean {
920- if ( ! deepCompare ( membership . slotDescription , slotDescription ) ) {
920+ if ( membership . slotId !== slotId ) {
921921 logger . info (
922- `Ignoring membership of user ${ membership . userId } for a different slot: ${ JSON . stringify ( membership . slotDescription ) } ` ,
922+ `Ignoring membership of user ${ membership . userId } for a different slot: user: ${ JSON . stringify ( membership . slotDescription ) } , slotId: ${ slotId } ) ` ,
923923 ) ;
924924 return false ;
925925 }
0 commit comments