[Bf-blender-cvs] [b7bce19] framebuffer: From review: (and to prevent crash for missing PyType_GenericNew func) BPy_GPU_OffScreen_CreatePyObject()
Dalai Felinto
noreply at git.blender.org
Thu Oct 15 15:57:37 CEST 2015
Commit: b7bce19ad560857ce5359f6a8030dc252338e16d
Author: Dalai Felinto
Date: Thu Oct 15 10:27:50 2015 -0300
Branches: framebuffer
https://developer.blender.org/rBb7bce19ad560857ce5359f6a8030dc252338e16d
>From review: (and to prevent crash for missing PyType_GenericNew func) BPy_GPU_OffScreen_CreatePyObject()
===================================================================
M source/blender/python/intern/gpu_offscreen.c
===================================================================
diff --git a/source/blender/python/intern/gpu_offscreen.c b/source/blender/python/intern/gpu_offscreen.c
index 2755b4a..2c038ff 100644
--- a/source/blender/python/intern/gpu_offscreen.c
+++ b/source/blender/python/intern/gpu_offscreen.c
@@ -321,6 +321,14 @@ static PyTypeObject PyGPUOffScreen_Type = {
/* -------------------------------------------------------------------- */
/* GPU offscreen methods */
+static PyObject *BPy_GPU_OffScreen_CreatePyObject(GPUOffScreen *ofs)
+{
+ PyGPUOffScreen *self;
+ self = PyObject_New(PyGPUOffScreen, &PyGPUOffScreen_Type);
+ self->ofs = ofs;
+ return (PyObject *)self;
+}
+
PyDoc_STRVAR(pygpu_offscreen_new_doc,
"new(width, height)\n"
"\n"
@@ -331,7 +339,7 @@ PyDoc_STRVAR(pygpu_offscreen_new_doc,
);
static PyObject *pygpu_offscreen_new(PyObject *UNUSED(self), PyObject *args, PyObject *kwds)
{
- PyGPUOffScreen *PyOfs;
+ GPUOffScreen *ofs;
int width, height;
char err_out[256];
@@ -350,19 +358,16 @@ static PyObject *pygpu_offscreen_new(PyObject *UNUSED(self), PyObject *args, PyO
return NULL;
}
- PyOfs = (PyGPUOffScreen *)PyObject_CallObject((PyObject *) &PyGPUOffScreen_Type, NULL);
- PyOfs->ofs = GPU_offscreen_create(width, height, err_out);
+ ofs = GPU_offscreen_create(width, height, err_out);
- if (PyOfs->ofs == NULL) {
+ if (ofs == NULL) {
PyErr_Format(PyExc_Exception,
"gpu.offscreen.new(...) failed with '%s'",
err_out[0] ? err_out : "unknown error");
-
- Py_DecRef((PyObject *)PyOfs);
return NULL;
}
- return (PyObject *)PyOfs;
+ return BPy_GPU_OffScreen_CreatePyObject(ofs);
}
static struct PyMethodDef BPy_GPU_offscreen_methods[] = {
More information about the Bf-blender-cvs
mailing list