summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/events/__init__.py36
-rw-r--r--synapse/storage/__init__.py3
2 files changed, 5 insertions, 34 deletions
diff --git a/synapse/events/__init__.py b/synapse/events/__init__.py
index d9dfe5e3f3..f8fbb18e3c 100644
--- a/synapse/events/__init__.py
+++ b/synapse/events/__init__.py
@@ -15,37 +15,9 @@
 
 from frozendict import frozendict
 
-import copy
-
-
-def _freeze(o):
-    if isinstance(o, dict) or isinstance(o, frozendict):
-        return frozendict({k: _freeze(v) for k, v in o.items()})
-
-    if isinstance(o, basestring):
-        return o
-
-    try:
-        return tuple([_freeze(i) for i in o])
-    except TypeError:
-        pass
-
-    return o
+from synapse.util.frozenutils import freeze, unfreeze
 
-
-def _unfreeze(o):
-    if isinstance(o, frozendict) or isinstance(o, dict):
-        return dict({k: _unfreeze(v) for k, v in o.items()})
-
-    if isinstance(o, basestring):
-        return o
-
-    try:
-        return [_unfreeze(i) for i in o]
-    except TypeError:
-        pass
-
-    return o
+import copy
 
 
 class _EventInternalMetadata(object):
@@ -147,7 +119,7 @@ class FrozenEvent(EventBase):
         signatures = copy.deepcopy(event_dict.pop("signatures", {}))
         unsigned = copy.deepcopy(event_dict.pop("unsigned", {}))
 
-        frozen_dict = _freeze(event_dict)
+        frozen_dict = freeze(event_dict)
 
         super(FrozenEvent, self).__init__(
             frozen_dict,
@@ -167,7 +139,7 @@ class FrozenEvent(EventBase):
 
     def get_dict(self):
         # We need to unfreeze what we return
-        return _unfreeze(super(FrozenEvent, self).get_dict())
+        return unfreeze(super(FrozenEvent, self).get_dict())
 
     def __str__(self):
         return self.__repr__()
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index d0ea304b3d..e75eaa92d5 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -21,7 +21,6 @@ from synapse.api.events.room import (
 )
 
 from synapse.util.logutils import log_function
-from synapse.util.frozenutils import FrozenEncoder
 
 from .directory import DirectoryStore
 from .feedback import FeedbackStore
@@ -177,7 +176,7 @@ class DataStore(RoomMemberStore, RoomStore,
             "event_id": event.event_id,
             "type": event.type,
             "room_id": event.room_id,
-            "content": json.dumps(event.content, cls=FrozenEncoder),
+            "content": json.dumps(event.get_dict()["content"]),
             "processed": True,
             "outlier": outlier,
             "depth": event.depth,