diff options
author | Erik Johnston <erik@matrix.org> | 2015-05-29 12:17:33 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-05-29 12:17:33 +0100 |
commit | a7b65bdedf512f646a3ca2478fb96a914856de35 (patch) | |
tree | 8b0336ae751d081a21b32c16f1cdb5d93f43e2fb /synapse/events | |
parent | SYN-395: Fix CAPTCHA, don't double decode json (diff) | |
download | synapse-a7b65bdedf512f646a3ca2478fb96a914856de35.tar.xz |
Add config option to turn off freezing events. Use new encode_json api and ujson.loads
Diffstat (limited to 'synapse/events')
-rw-r--r-- | synapse/events/__init__.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py index e4495ccf12..b2a904b408 100644 --- a/synapse/events/__init__.py +++ b/synapse/events/__init__.py @@ -16,6 +16,12 @@ from synapse.util.frozenutils import freeze +# Whether we should use frozen_dict in FrozenEvent. Using frozen_dicts prevents +# bugs where we accidentally share e.g. signature dicts. However, converting +# a dict to frozen_dicts is expensive. +USE_FROZEN_DICTS = True + + class _EventInternalMetadata(object): def __init__(self, internal_metadata_dict): self.__dict__ = dict(internal_metadata_dict) @@ -122,7 +128,10 @@ class FrozenEvent(EventBase): unsigned = dict(event_dict.pop("unsigned", {})) - frozen_dict = freeze(event_dict) + if USE_FROZEN_DICTS: + frozen_dict = freeze(event_dict) + else: + frozen_dict = dict(event_dict) super(FrozenEvent, self).__init__( frozen_dict, |