aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Modules/_zstd/zstddict.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_zstd/zstddict.c')
-rw-r--r--Modules/_zstd/zstddict.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/Modules/_zstd/zstddict.c b/Modules/_zstd/zstddict.c
index 264946e8da2..7df187a6fa6 100644
--- a/Modules/_zstd/zstddict.c
+++ b/Modules/_zstd/zstddict.c
@@ -52,6 +52,7 @@ _zstd_ZstdDict_new_impl(PyTypeObject *type, PyObject *dict_content,
self->dict_content = NULL;
self->d_dict = NULL;
+ self->dict_id = 0;
/* ZSTD_CDict dict */
self->c_dicts = PyDict_New();
@@ -92,9 +93,7 @@ _zstd_ZstdDict_new_impl(PyTypeObject *type, PyObject *dict_content,
return (PyObject*)self;
error:
- if (self != NULL) {
- PyObject_GC_Del(self);
- }
+ Py_XDECREF(self);
return NULL;
}
@@ -106,7 +105,9 @@ ZstdDict_dealloc(PyObject *ob)
PyObject_GC_UnTrack(self);
/* Free ZSTD_DDict instance */
- ZSTD_freeDDict(self->d_dict);
+ if (self->d_dict) {
+ ZSTD_freeDDict(self->d_dict);
+ }
/* Release dict_content after Free ZSTD_CDict/ZSTD_DDict instances */
Py_CLEAR(self->dict_content);