* Objects/mappingobject.c (mappingremove): don't call
lookmapping() for empty dictionary
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 89fd314..bb4e051 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -322,8 +322,11 @@
if (hash == -1)
return -1;
mp = (mappingobject *)op;
+ if (((mappingobject *)op)->ma_table == NULL)
+ goto empty;
ep = lookmapping(mp, key, hash);
if (ep->me_value == NULL) {
+ empty:
err_setval(KeyError, key);
return -1;
}
diff --git a/Objects/mappingobject.c b/Objects/mappingobject.c
index 89fd314..bb4e051 100644
--- a/Objects/mappingobject.c
+++ b/Objects/mappingobject.c
@@ -322,8 +322,11 @@
if (hash == -1)
return -1;
mp = (mappingobject *)op;
+ if (((mappingobject *)op)->ma_table == NULL)
+ goto empty;
ep = lookmapping(mp, key, hash);
if (ep->me_value == NULL) {
+ empty:
err_setval(KeyError, key);
return -1;
}