diff options
author | Erik Johnston <erik@matrix.org> | 2015-05-29 14:58:56 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-05-29 14:58:56 +0100 |
commit | 45bac68064754117f371e93169e332115201aee7 (patch) | |
tree | 3af9696ad2f57e13f2c876e9a41b7c18f75437f1 /synapse/events | |
parent | SYN-395: Fix CAPTCHA, don't double decode json (diff) | |
parent | Bump syutil version (diff) | |
download | synapse-45bac68064754117f371e93169e332115201aee7.tar.xz |
Merge pull request #169 from matrix-org/erikj/ultrajson
Use ultrajson when possible. Add option to turn off freezing of events.
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, |