diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 89fd314ef4b..bb4e051b1c7 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -322,8 +322,11 @@ mappingremove(op, key) 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 89fd314ef4b..bb4e051b1c7 100644 --- a/Objects/mappingobject.c +++ b/Objects/mappingobject.c @@ -322,8 +322,11 @@ mappingremove(op, key) 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; }