From c3dae6277993387b98b0434c2c76dea6bc11f35b Mon Sep 17 00:00:00 2001 From: Christoph Gohlke Date: Wed, 13 Mar 2013 17:42:26 -0700 Subject: [PATCH] Make _webp.c compatible with msvc --- _webp.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/_webp.c b/_webp.c index f361d35ae..8e479b3b0 100644 --- a/_webp.c +++ b/_webp.c @@ -9,14 +9,16 @@ PyObject* WebPEncodeRGB_wrapper(PyObject* self, PyObject* args) int height; int stride; float quality_factor; + uint8_t *rgb; + uint8_t *output; + Py_ssize_t size; + size_t ret_size; if (!PyArg_ParseTuple(args, "Siiif", &rgb_string, &width, &height, &stride, &quality_factor)) { Py_INCREF(Py_None); return Py_None; } - - uint8_t *rgb; - Py_ssize_t size; + PyString_AsStringAndSize((struct PyObject *) rgb_string, &rgb, &size); if (stride * height > size) { @@ -24,8 +26,7 @@ PyObject* WebPEncodeRGB_wrapper(PyObject* self, PyObject* args) return Py_None; } - uint8_t *output; - size_t ret_size = WebPEncodeRGB(rgb, width, height, stride, quality_factor, &output); + ret_size = WebPEncodeRGB(rgb, width, height, stride, quality_factor, &output); if (ret_size > 0) { PyObject *ret = PyString_FromStringAndSize(output, ret_size); free(output); @@ -40,20 +41,23 @@ PyObject* WebPDecodeRGB_wrapper(PyObject* self, PyObject* args) { PyStringObject *webp_string; float quality_factor; + int width; + int height; + uint8_t *webp; + uint8_t *output; + Py_ssize_t size; + PyObject *ret; if (!PyArg_ParseTuple(args, "S", &webp_string)) { Py_INCREF(Py_None); return Py_None; - } - uint8_t *webp; - Py_ssize_t size; + } + PyString_AsStringAndSize((struct PyObject *) webp_string, &webp, &size); - int width; - int height; - uint8_t *output = WebPDecodeRGB(webp, size, &width, &height); + output = WebPDecodeRGB(webp, size, &width, &height); - PyObject *ret = PyString_FromStringAndSize(output, width * height * 3); + ret = PyString_FromStringAndSize(output, width * height * 3); free(output); return Py_BuildValue("Sii", ret, width, height); }