contrib/python-zstandard/c-ext/compressiondict.c
changeset 30895 c32454d69b85
parent 30822 b54a2984cdd4
child 31796 e0dc40530c5a
equal deleted inserted replaced
30894:5b60464efbde 30895:c32454d69b85
    26 	size_t samplesSize = 0;
    26 	size_t samplesSize = 0;
    27 	size_t* sampleSizes;
    27 	size_t* sampleSizes;
    28 	void* dict;
    28 	void* dict;
    29 	ZstdCompressionDict* result;
    29 	ZstdCompressionDict* result;
    30 
    30 
    31 	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "nO!|O!", kwlist,
    31 	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "nO!|O!:train_dictionary",
       
    32 		kwlist,
    32 		&capacity,
    33 		&capacity,
    33 		&PyList_Type, &samples,
    34 		&PyList_Type, &samples,
    34 		(PyObject*)&DictParametersType, &parameters)) {
    35 		(PyObject*)&DictParametersType, &parameters)) {
    35 		return NULL;
    36 		return NULL;
    36 	}
    37 	}
    55 	samplesLen = PyList_Size(samples);
    56 	samplesLen = PyList_Size(samples);
    56 	for (sampleIndex = 0; sampleIndex < samplesLen; sampleIndex++) {
    57 	for (sampleIndex = 0; sampleIndex < samplesLen; sampleIndex++) {
    57 		sampleItem = PyList_GetItem(samples, sampleIndex);
    58 		sampleItem = PyList_GetItem(samples, sampleIndex);
    58 		if (!PyBytes_Check(sampleItem)) {
    59 		if (!PyBytes_Check(sampleItem)) {
    59 			PyErr_SetString(PyExc_ValueError, "samples must be bytes");
    60 			PyErr_SetString(PyExc_ValueError, "samples must be bytes");
    60 			/* TODO probably need to perform DECREF here */
       
    61 			return NULL;
    61 			return NULL;
    62 		}
    62 		}
    63 		samplesSize += PyBytes_GET_SIZE(sampleItem);
    63 		samplesSize += PyBytes_GET_SIZE(sampleItem);
    64 	}
    64 	}
    65 
    65 
   131 
   131 
   132 	self->dictData = NULL;
   132 	self->dictData = NULL;
   133 	self->dictSize = 0;
   133 	self->dictSize = 0;
   134 
   134 
   135 #if PY_MAJOR_VERSION >= 3
   135 #if PY_MAJOR_VERSION >= 3
   136 	if (!PyArg_ParseTuple(args, "y#", &source, &sourceSize)) {
   136 	if (!PyArg_ParseTuple(args, "y#:ZstdCompressionDict",
   137 #else
   137 #else
   138 	if (!PyArg_ParseTuple(args, "s#", &source, &sourceSize)) {
   138 	if (!PyArg_ParseTuple(args, "s#:ZstdCompressionDict",
   139 #endif
   139 #endif
       
   140 		&source, &sourceSize)) {
   140 		return -1;
   141 		return -1;
   141 	}
   142 	}
   142 
   143 
   143 	self->dictData = PyMem_Malloc(sourceSize);
   144 	self->dictData = PyMem_Malloc(sourceSize);
   144 	if (!self->dictData) {
   145 	if (!self->dictData) {