Intern type and state_key on events

pull/666/head
Erik Johnston 2016-03-23 14:58:08 +00:00
parent 75daede92f
commit fe9794706a
1 changed files with 7 additions and 0 deletions

View File

@ -14,6 +14,7 @@
# limitations under the License. # limitations under the License.
from synapse.util.frozenutils import freeze from synapse.util.frozenutils import freeze
from synapse.util.caches import intern_string
# Whether we should use frozen_dict in FrozenEvent. Using frozen_dicts prevents # Whether we should use frozen_dict in FrozenEvent. Using frozen_dicts prevents
@ -140,6 +141,12 @@ class FrozenEvent(EventBase):
unsigned = dict(event_dict.pop("unsigned", {})) unsigned = dict(event_dict.pop("unsigned", {}))
# We intern these strings because they turn up a lot (especially when
# caching).
event_dict["type"] = intern_string(event_dict["type"])
if "state_key" in event_dict:
event_dict["state_key"] = intern_string(event_dict["state_key"])
if USE_FROZEN_DICTS: if USE_FROZEN_DICTS:
frozen_dict = freeze(event_dict) frozen_dict = freeze(event_dict)
else: else: