equal
deleted
inserted
replaced
73 output.size = self->outSize; |
73 output.size = self->outSize; |
74 output.pos = 0; |
74 output.pos = 0; |
75 |
75 |
76 while (1) { |
76 while (1) { |
77 Py_BEGIN_ALLOW_THREADS |
77 Py_BEGIN_ALLOW_THREADS |
78 zresult = ZSTD_decompress_generic(self->decompressor->dctx, &output, &input); |
78 zresult = ZSTD_decompressStream(self->decompressor->dctx, &output, &input); |
79 Py_END_ALLOW_THREADS |
79 Py_END_ALLOW_THREADS |
80 |
80 |
81 if (ZSTD_isError(zresult)) { |
81 if (ZSTD_isError(zresult)) { |
82 PyErr_Format(ZstdError, "zstd decompressor error: %s", |
82 PyErr_Format(ZstdError, "zstd decompressor error: %s", |
83 ZSTD_getErrorName(zresult)); |
83 ZSTD_getErrorName(zresult)); |
128 PyBuffer_Release(&source); |
128 PyBuffer_Release(&source); |
129 |
129 |
130 return result; |
130 return result; |
131 } |
131 } |
132 |
132 |
|
133 static PyObject* DecompressionObj_flush(ZstdDecompressionObj* self, PyObject* args, PyObject* kwargs) { |
|
134 static char* kwlist[] = { |
|
135 "length", |
|
136 NULL |
|
137 }; |
|
138 |
|
139 PyObject* length = NULL; |
|
140 |
|
141 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:flush", kwlist, &length)) { |
|
142 return NULL; |
|
143 } |
|
144 |
|
145 Py_RETURN_NONE; |
|
146 } |
|
147 |
133 static PyMethodDef DecompressionObj_methods[] = { |
148 static PyMethodDef DecompressionObj_methods[] = { |
134 { "decompress", (PyCFunction)DecompressionObj_decompress, |
149 { "decompress", (PyCFunction)DecompressionObj_decompress, |
135 METH_VARARGS | METH_KEYWORDS, PyDoc_STR("decompress data") }, |
150 METH_VARARGS | METH_KEYWORDS, PyDoc_STR("decompress data") }, |
|
151 { "flush", (PyCFunction)DecompressionObj_flush, |
|
152 METH_VARARGS | METH_KEYWORDS, PyDoc_STR("no-op") }, |
136 { NULL, NULL } |
153 { NULL, NULL } |
137 }; |
154 }; |
138 |
155 |
139 PyTypeObject ZstdDecompressionObjType = { |
156 PyTypeObject ZstdDecompressionObjType = { |
140 PyVarObject_HEAD_INIT(NULL, 0) |
157 PyVarObject_HEAD_INIT(NULL, 0) |