mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-18 11:37:57 -04:00
Return read-only collections from @cached
methods (#13755)
It's important that collections returned from `@cached` methods are not modified, otherwise future retrievals from the cache will return the modified collection. This applies to the return values from `@cached` methods and the values inside the dictionaries returned by `@cachedList` methods. It's not necessary for the dictionaries returned by `@cachedList` methods themselves to be read-only. Signed-off-by: Sean Quah <seanq@matrix.org> Co-authored-by: David Robertson <davidr@element.io>
This commit is contained in:
parent
14be78d492
commit
d0c713cc85
27 changed files with 98 additions and 77 deletions
|
@ -14,7 +14,7 @@
|
|||
|
||||
import logging
|
||||
import string
|
||||
from typing import TYPE_CHECKING, Iterable, List, Optional
|
||||
from typing import TYPE_CHECKING, Iterable, List, Optional, Sequence
|
||||
|
||||
from typing_extensions import Literal
|
||||
|
||||
|
@ -486,7 +486,7 @@ class DirectoryHandler:
|
|||
)
|
||||
if canonical_alias:
|
||||
# Ensure we do not mutate room_aliases.
|
||||
room_aliases = room_aliases + [canonical_alias]
|
||||
room_aliases = list(room_aliases) + [canonical_alias]
|
||||
|
||||
if not self.config.roomdirectory.is_publishing_room_allowed(
|
||||
user_id, room_id, room_aliases
|
||||
|
@ -529,7 +529,7 @@ class DirectoryHandler:
|
|||
|
||||
async def get_aliases_for_room(
|
||||
self, requester: Requester, room_id: str
|
||||
) -> List[str]:
|
||||
) -> Sequence[str]:
|
||||
"""
|
||||
Get a list of the aliases that currently point to this room on this server
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue