aboutsummaryrefslogtreecommitdiff
path: root/immutables
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2018-12-13 16:21:46 -0500
committerYury Selivanov <yury@magic.io>2018-12-13 16:21:46 -0500
commit9862417e80ada753c85dcc127724843f5c8bc989 (patch)
tree43e18fc6c79faa1a6b8286302454c6bbc39d9e54 /immutables
parent0d6f144fcd9f2060153908878e23ab466ffefa44 (diff)
downloadimmutables-9862417e80ada753c85dcc127724843f5c8bc989.tar.gz
immutables-9862417e80ada753c85dcc127724843f5c8bc989.zip
Don't allow MapMutation.update() calls after the mutation is finished
Diffstat (limited to 'immutables')
-rw-r--r--immutables/_map.c4
-rw-r--r--immutables/map.py3
2 files changed, 7 insertions, 0 deletions
diff --git a/immutables/_map.c b/immutables/_map.c
index 9a81556..9b406ea 100644
--- a/immutables/_map.c
+++ b/immutables/_map.c
@@ -3880,6 +3880,10 @@ mapmut_py_update(MapMutationObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
+ if (mapmut_check_finalized(self)) {
+ return NULL;
+ }
+
if (arg != NULL) {
if (map_update_inplace(self->m_mutid, (BaseMapObject *)self, arg)) {
return NULL;
diff --git a/immutables/map.py b/immutables/map.py
index 7b230dd..4c5cd49 100644
--- a/immutables/map.py
+++ b/immutables/map.py
@@ -719,6 +719,9 @@ class MapMutation:
return True
def update(self, col=None, **kw):
+ if self.__mutid == 0:
+ raise ValueError('mutation {!r} has been finished'.format(self))
+
it = None
if col is not None:
if hasattr(col, 'items'):