- missing return values
- more detailed exceptions (always give file:line incase the python exception doesnt) - fix some errors in the edit docs editing docs still fails, need to figure out why.
This commit is contained in:
@@ -178,8 +178,10 @@ static int PYTHON_OT_generic(int mode, bContext *C, wmOperatorType *ot, wmOperat
|
||||
|
||||
} else if (BPY_flag_from_seq(pyop_ret_flags, ret, &ret_flag) == -1) {
|
||||
/* the returned value could not be converted into a flag */
|
||||
if(op)
|
||||
if(op) {
|
||||
fprintf(stderr, "error using return value from \"%s\"\n", op->idname); // for some reason the error raised doesnt include file:line... this helps
|
||||
BPy_errors_to_report(op->reports);
|
||||
}
|
||||
|
||||
ret_flag = OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ static char *bpy_flag_error_str(BPY_flag_def *flagdef)
|
||||
BLI_dynstr_appendf(dynstr, fd!=flagdef?", '%s'":"'%s'", fd->name);
|
||||
fd++;
|
||||
}
|
||||
|
||||
|
||||
cstring = BLI_dynstr_get_cstring(dynstr);
|
||||
BLI_dynstr_free(dynstr);
|
||||
return cstring;
|
||||
@@ -414,7 +414,10 @@ int BPy_errors_to_report(ReportList *reports)
|
||||
{
|
||||
PyObject *pystring;
|
||||
char *cstring;
|
||||
|
||||
|
||||
char *filename;
|
||||
int lineno;
|
||||
|
||||
if (!PyErr_Occurred())
|
||||
return 1;
|
||||
|
||||
@@ -432,10 +435,15 @@ int BPy_errors_to_report(ReportList *reports)
|
||||
return 0;
|
||||
}
|
||||
|
||||
BPY_getFileAndNum(&filename, &lineno);
|
||||
|
||||
cstring= _PyUnicode_AsString(pystring);
|
||||
|
||||
BKE_report(reports, RPT_ERROR, cstring);
|
||||
fprintf(stderr, "%s\n", cstring); // not exactly needed. just for testing
|
||||
BKE_reportf(reports, RPT_ERROR, "%s\nlocation:%s:%d\n", cstring, filename, lineno);
|
||||
|
||||
fprintf(stderr, "%s\nlocation:%s:%d\n", cstring, filename, lineno); // not exactly needed. just for testing
|
||||
|
||||
Py_DECREF(pystring);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user