]> sigrok.org Git - libsigrokdecode.git/blobdiff - exception.c
Make exception output more predictable.
[libsigrokdecode.git] / exception.c
index 9c3fa48d29453321936d79f5f5df8d6b1789d11b..8f15ff22a520550a519dfb343d30ad8b2826933e 100644 (file)
@@ -46,21 +46,20 @@ SRD_PRIV void srd_exception_catch(const char *format, ...)
                return;
        }
 
-       msg = g_string_sized_new(128);
-       va_start(args, format);
-       g_string_vprintf(msg, format, args);
-       va_end(args);
-
-       /* Can be NULL. */
+       /* Send the exception error message(s) to srd_err(). */
        if (evalue)
                ename = (char *)Py_TYPE(evalue)->tp_name;
        else
+               /* Can be NULL. */
                ename = "(unknown exception)";
 
-       /* Send the exception error message(s) to srd_err(). */
-       py_str_as_str(py_str, &str);
+       msg = g_string_sized_new(128);
        g_string_append(msg, ename);
        g_string_append(msg, ": ");
+       va_start(args, format);
+       g_string_append_vprintf(msg, format, args);
+       va_end(args);
+       py_str_as_str(py_str, &str);
        g_string_append(msg, str);
        Py_DecRef(py_str);
        srd_err(msg->str);