diff --git a/cairo/pattern.c b/cairo/pattern.c index de6af809..278f79f1 100644 --- a/cairo/pattern.c +++ b/cairo/pattern.c @@ -1018,6 +1018,7 @@ _raster_source_release_func (cairo_pattern_t *pattern, result = NULL; goto error; } + Py_DECREF (result); Py_DECREF (pysurface); PyGILState_Release (gstate); diff --git a/cairo/surface.c b/cairo/surface.c index b7b36f29..7909d39c 100644 --- a/cairo/surface.c +++ b/cairo/surface.c @@ -503,7 +503,7 @@ surface_set_mime_data (PycairoSurface *o, PyObject *args) { mime_intern = PyUnicode_InternFromString (mime_type); surface_capsule = PyCapsule_New(o->surface, NULL, NULL); view_capsule = PyCapsule_New(view, NULL, NULL); - user_data = Py_BuildValue("(NNOO)", surface_capsule, view_capsule, obj, mime_intern); + user_data = Py_BuildValue("(NNON)", surface_capsule, view_capsule, obj, mime_intern); if (user_data == NULL) { PyBuffer_Release (view); PyMem_Free (view); @@ -558,6 +558,7 @@ surface_get_mime_data (PycairoSurface *o, PyObject *args) { mime_intern = PyUnicode_InternFromString (mime_type); user_data = cairo_surface_get_user_data( o->surface, (cairo_user_data_key_t *)mime_intern); + Py_DECREF(mime_intern); if (user_data == NULL) { /* In case the mime data wasn't set through the Python API just copy it */