Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 98e2c3a

Browse filesBrowse files
authored
GH-132983: remove empty_bytes from _zstd module state (#133785)
1 parent bbe9c31 commit 98e2c3a
Copy full SHA for 98e2c3a

File tree

3 files changed

+2
-29
lines changed
Filter options

3 files changed

+2
-29
lines changed

‎Modules/_zstd/_zstdmodule.c

Copy file name to clipboardExpand all lines: Modules/_zstd/_zstdmodule.c
-9Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -587,11 +587,6 @@ do { \
587587
_zstd_state* const mod_state = get_zstd_state(m);
588588

589589
/* Reusable objects & variables */
590-
mod_state->empty_bytes = PyBytes_FromStringAndSize(NULL, 0);
591-
if (mod_state->empty_bytes == NULL) {
592-
return -1;
593-
}
594-
595590
mod_state->CParameter_type = NULL;
596591
mod_state->DParameter_type = NULL;
597592

@@ -694,8 +689,6 @@ _zstd_traverse(PyObject *module, visitproc visit, void *arg)
694689
{
695690
_zstd_state* const mod_state = get_zstd_state(module);
696691

697-
Py_VISIT(mod_state->empty_bytes);
698-
699692
Py_VISIT(mod_state->ZstdDict_type);
700693
Py_VISIT(mod_state->ZstdCompressor_type);
701694

@@ -713,8 +706,6 @@ _zstd_clear(PyObject *module)
713706
{
714707
_zstd_state* const mod_state = get_zstd_state(module);
715708

716-
Py_CLEAR(mod_state->empty_bytes);
717-
718709
Py_CLEAR(mod_state->ZstdDict_type);
719710
Py_CLEAR(mod_state->ZstdCompressor_type);
720711

‎Modules/_zstd/_zstdmodule.h

Copy file name to clipboardExpand all lines: Modules/_zstd/_zstdmodule.h
-2Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ extern PyType_Spec zstd_compressor_type_spec;
3535
extern PyType_Spec zstd_decompressor_type_spec;
3636

3737
struct _zstd_state {
38-
PyObject *empty_bytes;
39-
4038
PyTypeObject *ZstdDict_type;
4139
PyTypeObject *ZstdCompressor_type;
4240
PyTypeObject *ZstdDecompressor_type;

‎Modules/_zstd/decompressor.c

Copy file name to clipboardExpand all lines: Modules/_zstd/decompressor.c
+2-18Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -290,13 +290,7 @@ decompress_impl(ZstdDecompressor *self, ZSTD_inBuffer *in,
290290
/* The first AFE check for setting .at_frame_edge flag */
291291
if (type == TYPE_ENDLESS_DECOMPRESSOR) {
292292
if (self->at_frame_edge && in->pos == in->size) {
293-
_zstd_state* const mod_state = PyType_GetModuleState(Py_TYPE(self));
294-
if (mod_state == NULL) {
295-
return NULL;
296-
}
297-
ret = mod_state->empty_bytes;
298-
Py_INCREF(ret);
299-
return ret;
293+
return Py_GetConstant(Py_CONSTANT_EMPTY_BYTES);
300294
}
301295
}
302296

@@ -747,16 +741,8 @@ _zstd_ZstdDecompressor_unused_data_get_impl(ZstdDecompressor *self)
747741
{
748742
PyObject *ret;
749743

750-
/* Thread-safe code */
751-
Py_BEGIN_CRITICAL_SECTION(self);
752-
753744
if (!self->eof) {
754-
_zstd_state* const mod_state = PyType_GetModuleState(Py_TYPE(self));
755-
if (mod_state == NULL) {
756-
return NULL;
757-
}
758-
ret = mod_state->empty_bytes;
759-
Py_INCREF(ret);
745+
return Py_GetConstant(Py_CONSTANT_EMPTY_BYTES);
760746
}
761747
else {
762748
if (self->unused_data == NULL) {
@@ -772,8 +758,6 @@ _zstd_ZstdDecompressor_unused_data_get_impl(ZstdDecompressor *self)
772758
}
773759
}
774760

775-
Py_END_CRITICAL_SECTION();
776-
777761
return ret;
778762
}
779763

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.