contrib/python-zstandard/c-ext/compressionwriter.c
changeset 40121 73fef626dae3
parent 37495 b1fb341d8a61
child 42070 675775c33ab6
equal deleted inserted replaced
40120:89742f1fa6cb 40121:73fef626dae3
   220 			PyMem_Free(output.dst);
   220 			PyMem_Free(output.dst);
   221 			PyErr_Format(ZstdError, "zstd compress error: %s", ZSTD_getErrorName(zresult));
   221 			PyErr_Format(ZstdError, "zstd compress error: %s", ZSTD_getErrorName(zresult));
   222 			return NULL;
   222 			return NULL;
   223 		}
   223 		}
   224 
   224 
   225 		if (!output.pos) {
       
   226 			break;
       
   227 		}
       
   228 
       
   229 		/* Copy data from output buffer to writer. */
   225 		/* Copy data from output buffer to writer. */
   230 		if (output.pos) {
   226 		if (output.pos) {
   231 #if PY_MAJOR_VERSION >= 3
   227 #if PY_MAJOR_VERSION >= 3
   232 			res = PyObject_CallMethod(self->writer, "write", "y#",
   228 			res = PyObject_CallMethod(self->writer, "write", "y#",
   233 #else
   229 #else
   236 				output.dst, output.pos);
   232 				output.dst, output.pos);
   237 			Py_XDECREF(res);
   233 			Py_XDECREF(res);
   238 			totalWrite += output.pos;
   234 			totalWrite += output.pos;
   239 			self->bytesCompressed += output.pos;
   235 			self->bytesCompressed += output.pos;
   240 		}
   236 		}
       
   237 
   241 		output.pos = 0;
   238 		output.pos = 0;
       
   239 
       
   240 		if (!zresult) {
       
   241 			break;
       
   242 		}
   242 	}
   243 	}
   243 
   244 
   244 	PyMem_Free(output.dst);
   245 	PyMem_Free(output.dst);
   245 
   246 
   246 	return PyLong_FromSsize_t(totalWrite);
   247 	return PyLong_FromSsize_t(totalWrite);