[Bf-blender-cvs] [975e561] framebuffer: Remove error prefix for use-after-free.
Campbell Barton
noreply at git.blender.org
Mon Oct 19 18:45:43 CEST 2015
Commit: 975e56100dcfe7f0c64ebdc59af12c3835744598
Author: Campbell Barton
Date: Tue Oct 20 03:38:21 2015 +1100
Branches: framebuffer
https://developer.blender.org/rB975e56100dcfe7f0c64ebdc59af12c3835744598
Remove error prefix for use-after-free.
This case is rare enough under regular use,
and Pythons stack-trace to the line is enough to find the error.
===================================================================
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 30b6c49..67d2fa1 100644
--- a/source/blender/python/intern/gpu_offscreen.c
+++ b/source/blender/python/intern/gpu_offscreen.c
@@ -64,19 +64,17 @@ typedef struct {
GPUOffScreen *ofs;
} BPy_GPUOffScreen;
-static int bpy_gpu_offscreen_valid_check(BPy_GPUOffScreen *py_gpu_ofs, const char *error_prefix)
+static int bpy_gpu_offscreen_valid_check(BPy_GPUOffScreen *py_gpu_ofs)
{
if (UNLIKELY(py_gpu_ofs->ofs == NULL)) {
- PyErr_Format(PyExc_ReferenceError,
- "%.200s: GPU offscreen was freed, no further access is valid",
- error_prefix);
+ PyErr_SetString(PyExc_ReferenceError, "GPU offscreen was freed, no further access is valid");
return -1;
}
return 0;
}
-#define BPY_GPU_OFFSCREEN_CHECK_OBJ(pygpu, errmsg) { \
- if (UNLIKELY(bpy_gpu_offscreen_valid_check(pygpu, errmsg) == -1)) { \
+#define BPY_GPU_OFFSCREEN_CHECK_OBJ(pygpu) { \
+ if (UNLIKELY(bpy_gpu_offscreen_valid_check(pygpu) == -1)) { \
return NULL; \
} \
} ((void)0)
@@ -87,28 +85,28 @@ static int bpy_gpu_offscreen_valid_check(BPy_GPUOffScreen *py_gpu_ofs, const cha
PyDoc_STRVAR(pygpu_offscreen_width_doc, "Texture width.\n\n:type: i");
static PyObject *pygpu_offscreen_width_get(BPy_GPUOffScreen *self, void *UNUSED(type))
{
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "width");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
return PyLong_FromLong(GPU_offscreen_width(self->ofs));
}
PyDoc_STRVAR(pygpu_offscreen_height_doc, "Texture height.\n\n:type: int");
static PyObject *pygpu_offscreen_height_get(BPy_GPUOffScreen *self, void *UNUSED(type))
{
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "height");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
return PyLong_FromLong(GPU_offscreen_height(self->ofs));
}
PyDoc_STRVAR(pygpu_offscreen_framebuffer_object_doc, "Framebuffer object.\n\n:type: int");
static PyObject *pygpu_offscreen_framebuffer_object_get(BPy_GPUOffScreen *self, void *UNUSED(type))
{
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "framebuffer object");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
return PyLong_FromLong(GPU_offscreen_fb_object(self->ofs));
}
PyDoc_STRVAR(pygpu_offscreen_color_object_doc, "Color object.\n\n:type: int");
static PyObject *pygpu_offscreen_color_object_get(BPy_GPUOffScreen *self, void *UNUSED(type))
{
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "color object");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
return PyLong_FromLong(GPU_offscreen_color_object(self->ofs));
}
@@ -125,7 +123,7 @@ static PyObject *pygpu_offscreen_bind(BPy_GPUOffScreen *self, PyObject *args, Py
static const char *kwlist[] = {"save", NULL};
bool save = true;
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "bind");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
if (!PyArg_ParseTupleAndKeywords(
args, kwds, "|O&:bind", (char **)(kwlist),
@@ -151,7 +149,7 @@ static PyObject *pygpu_offscreen_unbind(BPy_GPUOffScreen *self, PyObject *args,
static const char *kwlist[] = {"restore", NULL};
bool restore = true;
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "unbind");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
if (!PyArg_ParseTupleAndKeywords(
args, kwds, "|O&:unbind", (char **)(kwlist),
@@ -223,7 +221,7 @@ static PyObject *pygpu_offscreen_draw_view3d(BPy_GPUOffScreen *self, PyObject *a
GPUFX *fx;
GPUFXSettings fx_settings;
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "draw_view3d");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
if (!PyArg_ParseTupleAndKeywords(
args, kwds, "OOOO&O&:draw_view3d", (char **)(kwlist),
@@ -266,7 +264,7 @@ PyDoc_STRVAR(pygpu_offscreen_free_doc,
);
static PyObject *pygpu_offscreen_free(BPy_GPUOffScreen *self)
{
- BPY_GPU_OFFSCREEN_CHECK_OBJ(self, "free");
+ BPY_GPU_OFFSCREEN_CHECK_OBJ(self);
GPU_offscreen_free(self->ofs);
self->ofs = NULL;
More information about the Bf-blender-cvs
mailing list