[Bf-blender-cvs] [206b67b] framebuffer: Remove redundant args to PyExc_Format

Campbell Barton noreply at git.blender.org
Mon Oct 19 17:03:46 CEST 2015


Commit: 206b67b31a311867bd222477bfa28c0c73ff9dbb
Author: Campbell Barton
Date:   Tue Oct 20 01:56:56 2015 +1100
Branches: framebuffer
https://developer.blender.org/rB206b67b31a311867bd222477bfa28c0c73ff9dbb

Remove redundant args to PyExc_Format

Also make error handling more compact.
and don't overwrite errors from PyC_RNA_AsPointer.

===================================================================

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 7fb0bda..b7e532f 100644
--- a/source/blender/python/intern/gpu_offscreen.c
+++ b/source/blender/python/intern/gpu_offscreen.c
@@ -69,7 +69,7 @@ static int bpy_gpu_offscreen_valid_check(PyGPUOffScreen *py_gpu_ofs, const char
 	if (UNLIKELY(py_gpu_ofs->ofs == NULL)) {
 		PyErr_Format(PyExc_ReferenceError,
 		             "%.200s: GPU offscreen was freed, no further access is valid",
-		             error_prefix, Py_TYPE(py_gpu_ofs)->tp_name);
+		             error_prefix);
 		return -1;
 	}
 	return 0;
@@ -174,7 +174,7 @@ static int pygpu_offscreen_check_matrix(PyObject *o, void *p)
 
 	if (!MatrixObject_Check(pymat)) {
 		PyErr_Format(PyExc_TypeError,
-		             "matrix is not in a valid format (e.g., mathutils.Matrix)",
+		             "expected a mathutils.Matrix, not a %.200s",
 		             Py_TYPE(o)->tp_name);
 		return 0;
 	}
@@ -186,9 +186,7 @@ static int pygpu_offscreen_check_matrix(PyObject *o, void *p)
 	if ((pymat->num_col != 4) ||
 	    (pymat->num_row != 4))
 	{
-		PyErr_Format(PyExc_TypeError,
-		             "matrix must have 4 rows and 4 columns",
-		             Py_TYPE(o)->tp_name);
+		PyErr_SetString(PyExc_ValueError, "matrix must be 4x4");
 		return 0;
 	}
 
@@ -225,29 +223,14 @@ static PyObject *pygpu_offscreen_draw_view3d(PyGPUOffScreen *self, PyObject *arg
 	        args, kwds, "OOOO&O&:draw_view3d", (char **)(kwlist),
 	        &py_scene, &py_region, &py_view3d,
 	        pygpu_offscreen_check_matrix, &py_mat_projection,
-	        pygpu_offscreen_check_matrix, &py_mat_modelview))
+	        pygpu_offscreen_check_matrix, &py_mat_modelview) ||
+	    (!(scene    = PyC_RNA_AsPointer(py_scene, "Scene")) ||
+	     !(ar       = PyC_RNA_AsPointer(py_region, "ARegion")) ||
+	     !(v3d      = PyC_RNA_AsPointer(py_view3d, "View3D"))))
 	{
 		return NULL;
 	}
 
-	scene = (Scene *)PyC_RNA_AsPointer(py_scene, "Scene");
-	if (scene == NULL) {
-		PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid scene");
-		return NULL;
-	}
-
-	ar = (ARegion *)PyC_RNA_AsPointer(py_region, "ARegion");
-	if (ar == NULL) {
-		PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid region");
-		return NULL;
-	}
-
-	v3d = (View3D *)PyC_RNA_AsPointer(py_view3d, "View3D");
-	if (v3d == NULL) {
-		PyErr_SetString(PyExc_SystemError, "draw_view3d: No valid 3d view");
-		return NULL;
-	}
-
 	fx = GPU_fx_compositor_create();
 
 	fx_settings = v3d->fx_settings;  /* full copy */
@@ -419,7 +402,7 @@ static PyObject *pygpu_offscreen_new(PyObject *UNUSED(self), PyObject *args, PyO
 	ofs = GPU_offscreen_create(width, height, samples, err_out);
 
 	if (ofs == NULL) {
-		PyErr_Format(PyExc_Exception,
+		PyErr_Format(PyExc_RuntimeError,
 		             "gpu.offscreen.new(...) failed with '%s'",
 		             err_out[0] ? err_out : "unknown error");
 		return NULL;




More information about the Bf-blender-cvs mailing list