Commit f69ac182 authored by Stefan Behnel's avatar Stefan Behnel

improve code readability in AddTraceback() utility function by removing unnecessary template names

--HG--
extra : transplant_source : %9F%0B%FF%0F%16%0C%25%B9%FA7%D8%25%9EDpJSE%5E%BB
parent d21cdb85
...@@ -8802,37 +8802,32 @@ code_object_cache_utility_code = UtilityCode.load_cached("CodeObjectCache", "Mod ...@@ -8802,37 +8802,32 @@ code_object_cache_utility_code = UtilityCode.load_cached("CodeObjectCache", "Mod
traceback_utility_code = UtilityCode( traceback_utility_code = UtilityCode(
proto = """ proto = """
static void __Pyx_AddTraceback(const char *funcname, int %(CLINENO)s, static void __Pyx_AddTraceback(const char *funcname, int c_line,
int %(LINENO)s, const char *%(FILENAME)s); /*proto*/ int py_line, const char *filename); /*proto*/
""" % { """,
'FILENAME': Naming.filename_cname,
'LINENO': Naming.lineno_cname,
'CLINENO': Naming.clineno_cname,
},
impl = """ impl = """
#include "compile.h" #include "compile.h"
#include "frameobject.h" #include "frameobject.h"
#include "traceback.h" #include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
const char *funcname, int %(CLINENO)s, const char *funcname, int c_line,
int %(LINENO)s, const char *%(FILENAME)s) { int py_line, const char *filename) {
PyCodeObject *py_code = 0; PyCodeObject *py_code = 0;
PyObject *py_srcfile = 0; PyObject *py_srcfile = 0;
PyObject *py_funcname = 0; PyObject *py_funcname = 0;
#if PY_MAJOR_VERSION < 3 #if PY_MAJOR_VERSION < 3
py_srcfile = PyString_FromString(%(FILENAME)s); py_srcfile = PyString_FromString(filename);
#else #else
py_srcfile = PyUnicode_FromString(%(FILENAME)s); py_srcfile = PyUnicode_FromString(filename);
#endif #endif
if (!py_srcfile) goto bad; if (!py_srcfile) goto bad;
if (%(CLINENO)s) { if (c_line) {
#if PY_MAJOR_VERSION < 3 #if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromFormat( "%%s (%%s:%%d)", funcname, %(CFILENAME)s, %(CLINENO)s); py_funcname = PyString_FromFormat( "%%s (%%s:%%d)", funcname, %(CFILENAME)s, c_line);
#else #else
py_funcname = PyUnicode_FromFormat( "%%s (%%s:%%d)", funcname, %(CFILENAME)s, %(CLINENO)s); py_funcname = PyUnicode_FromFormat( "%%s (%%s:%%d)", funcname, %(CFILENAME)s, c_line);
#endif #endif
} }
else { else {
...@@ -8857,7 +8852,7 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( ...@@ -8857,7 +8852,7 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
%(EMPTY_TUPLE)s, /*PyObject *cellvars,*/ %(EMPTY_TUPLE)s, /*PyObject *cellvars,*/
py_srcfile, /*PyObject *filename,*/ py_srcfile, /*PyObject *filename,*/
py_funcname, /*PyObject *name,*/ py_funcname, /*PyObject *name,*/
%(LINENO)s, /*int firstlineno,*/ py_line, /*int firstlineno,*/
%(EMPTY_BYTES)s /*PyObject *lnotab*/ %(EMPTY_BYTES)s /*PyObject *lnotab*/
); );
Py_DECREF(py_srcfile); Py_DECREF(py_srcfile);
...@@ -8869,18 +8864,18 @@ bad: ...@@ -8869,18 +8864,18 @@ bad:
return NULL; return NULL;
} }
static void __Pyx_AddTraceback(const char *funcname, int %(CLINENO)s, static void __Pyx_AddTraceback(const char *funcname, int c_line,
int %(LINENO)s, const char *%(FILENAME)s) { int py_line, const char *filename) {
PyCodeObject *py_code = 0; PyCodeObject *py_code = 0;
PyObject *py_globals = 0; PyObject *py_globals = 0;
PyFrameObject *py_frame = 0; PyFrameObject *py_frame = 0;
py_code = %(FINDCODEOBJECT)s(%(CLINENO)s ? %(CLINENO)s : %(LINENO)s); py_code = %(FINDCODEOBJECT)s(c_line ? c_line : py_line);
if (!py_code) { if (!py_code) {
py_code = __Pyx_CreateCodeObjectForTraceback( py_code = __Pyx_CreateCodeObjectForTraceback(
funcname, %(CLINENO)s, %(LINENO)s, %(FILENAME)s); funcname, c_line, py_line, filename);
if (!py_code) goto bad; if (!py_code) goto bad;
%(INSERTCODEOBJECT)s(%(CLINENO)s ? %(CLINENO)s : %(LINENO)s, py_code); %(INSERTCODEOBJECT)s(c_line ? c_line : py_line, py_code);
} }
py_globals = PyModule_GetDict(%(GLOBALS)s); py_globals = PyModule_GetDict(%(GLOBALS)s);
if (!py_globals) goto bad; if (!py_globals) goto bad;
...@@ -8891,17 +8886,14 @@ static void __Pyx_AddTraceback(const char *funcname, int %(CLINENO)s, ...@@ -8891,17 +8886,14 @@ static void __Pyx_AddTraceback(const char *funcname, int %(CLINENO)s,
0 /*PyObject *locals*/ 0 /*PyObject *locals*/
); );
if (!py_frame) goto bad; if (!py_frame) goto bad;
py_frame->f_lineno = %(LINENO)s; py_frame->f_lineno = py_line;
PyTraceBack_Here(py_frame); PyTraceBack_Here(py_frame);
bad: bad:
Py_XDECREF(py_code); Py_XDECREF(py_code);
Py_XDECREF(py_frame); Py_XDECREF(py_frame);
} }
""" % { """ % {
'FILENAME': Naming.filename_cname,
'LINENO': Naming.lineno_cname,
'CFILENAME': Naming.cfilenm_cname, 'CFILENAME': Naming.cfilenm_cname,
'CLINENO': Naming.clineno_cname,
'GLOBALS': Naming.module_cname, 'GLOBALS': Naming.module_cname,
'FINDCODEOBJECT' : Naming.global_code_object_cache_find, 'FINDCODEOBJECT' : Naming.global_code_object_cache_find,
'INSERTCODEOBJECT' : Naming.global_code_object_cache_insert, 'INSERTCODEOBJECT' : Naming.global_code_object_cache_insert,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment