@@ -533,7 +533,7 @@ impl BaseClient {
533533
534534 let push_rules = self . get_push_rules ( & global_account_data_processor) . await ?;
535535
536- let mut new_rooms = RoomUpdates :: default ( ) ;
536+ let mut room_updates = RoomUpdates :: default ( ) ;
537537 let mut notifications = Default :: default ( ) ;
538538
539539 let mut updated_members_in_room: BTreeMap < OwnedRoomId , BTreeSet < OwnedUserId > > =
@@ -564,7 +564,7 @@ impl BaseClient {
564564 )
565565 . await ?;
566566
567- new_rooms . joined . insert ( room_id, joined_room_update) ;
567+ room_updates . joined . insert ( room_id, joined_room_update) ;
568568 }
569569
570570 for ( room_id, left_room) in response. rooms . leave {
@@ -591,7 +591,7 @@ impl BaseClient {
591591 )
592592 . await ?;
593593
594- new_rooms . left . insert ( room_id, left_room_update) ;
594+ room_updates . left . insert ( room_id, left_room_update) ;
595595 }
596596
597597 for ( room_id, invited_room) in response. rooms . invite {
@@ -608,7 +608,7 @@ impl BaseClient {
608608 )
609609 . await ?;
610610
611- new_rooms . invited . insert ( room_id, invited_room_update) ;
611+ room_updates . invited . insert ( room_id, invited_room_update) ;
612612 }
613613
614614 for ( room_id, knocked_room) in response. rooms . knock {
@@ -625,7 +625,7 @@ impl BaseClient {
625625 )
626626 . await ?;
627627
628- new_rooms . knocked . insert ( room_id, knocked_room_update) ;
628+ room_updates . knocked . insert ( room_id, knocked_room_update) ;
629629 }
630630
631631 global_account_data_processor. apply ( & mut context, & self . state_store ) . await ;
@@ -654,12 +654,19 @@ impl BaseClient {
654654 . await ?;
655655 }
656656
657+ let mut context = Context :: default ( ) ;
658+
657659 // Now that all the rooms information have been saved, update the display name
658- // cache (which relies on information stored in the database). This will
659- // live in memory, until the next sync which will saves the room info to
660- // disk; we do this to avoid saving that would be redundant with the
661- // above. Oh well.
662- new_rooms. update_in_memory_caches ( & self . state_store ) . await ;
660+ // of the updated rooms (which relies on information stored in the database).
661+ processors:: room:: display_name:: update_for_rooms (
662+ & mut context,
663+ & room_updates,
664+ & self . state_store ,
665+ )
666+ . await ;
667+
668+ // Save the new display name updates if any.
669+ processors:: changes:: save_only ( context, & self . state_store ) . await ?;
663670
664671 for ( room_id, member_ids) in updated_members_in_room {
665672 if let Some ( room) = self . get_room ( & room_id) {
@@ -673,7 +680,7 @@ impl BaseClient {
673680 }
674681
675682 let response = SyncResponse {
676- rooms : new_rooms ,
683+ rooms : room_updates ,
677684 presence : response. presence . events ,
678685 account_data : response. account_data . events ,
679686 to_device,
0 commit comments