[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20892] branches/soc-2009-kazanbas: Another fix in BPY_flag_from_seq: unrecognized flag is also an error.
Arystanbek Dyussenov
arystan.d at gmail.com
Mon Jun 15 11:26:31 CEST 2009
Revision: 20892
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20892
Author: kazanbas
Date: 2009-06-15 11:26:31 +0200 (Mon, 15 Jun 2009)
Log Message:
-----------
Another fix in BPY_flag_from_seq: unrecognized flag is also an error.
Print operator return value for debugging.
Modified Paths:
--------------
branches/soc-2009-kazanbas/release/ui/space_script.py
branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c
branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c
Modified: branches/soc-2009-kazanbas/release/ui/space_script.py
===================================================================
--- branches/soc-2009-kazanbas/release/ui/space_script.py 2009-06-15 08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/release/ui/space_script.py 2009-06-15 09:26:31 UTC (rev 20892)
@@ -112,7 +112,7 @@
register_op(cls)
print("Registered it.")
- return 'FINISHED'
+ return ('FINISHED',)
def invoke(self, context, event):
print("SCRIPT_OT_reload_scripts: invoke")
Modified: branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c 2009-06-15 08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c 2009-06-15 09:26:31 UTC (rev 20892)
@@ -316,7 +316,8 @@
} else if (BPY_flag_from_seq(pyop_ret_flags, ret, &ret_flag) == -1) {
/* the returned value could not be converted into a flag */
pyop_error_report(op->reports);
-
+
+ ret_flag = OPERATOR_CANCELLED;
}
/* there is no need to copy the py keyword dict modified by
* pyot->py_invoke(), back to the operator props since they are just
@@ -329,6 +330,29 @@
Py_DECREF(ret);
}
+ /* print operator return value */
+ if (mode != PYOP_POLL) {
+ char flag_str[100];
+ char class_name[100];
+ BPY_flag_def *flag_def = pyop_ret_flags;
+
+ strcpy(flag_str, "");
+
+ while(flag_def->name) {
+ if (ret_flag & flag_def->flag) {
+ flag_str[1] ? sprintf(flag_str, "%s | %s", flag_str, flag_def->name) : strcpy(flag_str, flag_def->name);
+ }
+ flag_def++;
+ }
+
+ /* get class name */
+ item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME);
+ Py_DECREF(item);
+ strcpy(class_name, _PyUnicode_AsString(item));
+
+ fprintf(stderr, "%s's %s returned %s\n", class_name, mode == PYOP_EXEC ? "exec" : "invoke", flag_str);
+ }
+
PyGILState_Release(gilstate);
return ret_flag;
Modified: branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c 2009-06-15 08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c 2009-06-15 09:26:31 UTC (rev 20892)
@@ -109,6 +109,9 @@
error_val= 1;
}
+ if (*flag == 0)
+ error_val = 1;
+
if (error_val) {
char *buf = bpy_flag_error_str(flagdef);
PyErr_SetString(PyExc_AttributeError, buf);
More information about the Bf-blender-cvs
mailing list