Skip to content

Commit 81e163a

Browse files
committed
(#60) fixed memory leak on construction of an empty frozendict
1 parent 3e3c635 commit 81e163a

File tree

5 files changed

+15
-0
lines changed

5 files changed

+15
-0
lines changed

frozendict/src/3_10/frozendictobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,9 @@ static PyObject* frozendict_create_empty(
14171417
((PyDictObject*) empty_frozendict)->ma_keys = Py_EMPTY_KEYS;
14181418
mp->ma_version_tag = DICT_NEXT_VERSION();
14191419
}
1420+
else {
1421+
Py_DECREF(mp);
1422+
}
14201423

14211424
Py_INCREF(empty_frozendict);
14221425

frozendict/src/3_6/frozendictobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,9 @@ static PyObject* frozendict_create_empty(
14181418
((PyDictObject*) empty_frozendict)->ma_keys = Py_EMPTY_KEYS;
14191419
mp->ma_version_tag = DICT_NEXT_VERSION();
14201420
}
1421+
else {
1422+
Py_DECREF(mp);
1423+
}
14211424

14221425
Py_INCREF(empty_frozendict);
14231426

frozendict/src/3_7/frozendictobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,6 +1434,9 @@ static PyObject* frozendict_create_empty(
14341434
((PyDictObject*) empty_frozendict)->ma_keys = Py_EMPTY_KEYS;
14351435
mp->ma_version_tag = DICT_NEXT_VERSION();
14361436
}
1437+
else {
1438+
Py_DECREF(mp);
1439+
}
14371440

14381441
Py_INCREF(empty_frozendict);
14391442

frozendict/src/3_8/frozendictobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,9 @@ static PyObject* frozendict_create_empty(
14221422
((PyDictObject*) empty_frozendict)->ma_keys = Py_EMPTY_KEYS;
14231423
mp->ma_version_tag = DICT_NEXT_VERSION();
14241424
}
1425+
else {
1426+
Py_DECREF(mp);
1427+
}
14251428

14261429
Py_INCREF(empty_frozendict);
14271430

frozendict/src/3_9/frozendictobject.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1423,6 +1423,9 @@ static PyObject* frozendict_create_empty(
14231423
((PyDictObject*) empty_frozendict)->ma_keys = Py_EMPTY_KEYS;
14241424
mp->ma_version_tag = DICT_NEXT_VERSION();
14251425
}
1426+
else {
1427+
Py_DECREF(mp);
1428+
}
14261429

14271430
Py_INCREF(empty_frozendict);
14281431

0 commit comments

Comments
 (0)