Less ugly #ifdefs for C profiling fix

This commit is contained in:
Nicholas Bastin 2004-06-22 15:37:51 +00:00
parent bbffbd1983
commit 941b8bc41a
1 changed files with 5 additions and 12 deletions

View File

@ -3438,6 +3438,7 @@ err_args(PyObject *func, int flags, int nargs)
nargs);
}
#ifdef WITH_C_PROF
#define BEGIN_C_TRACE \
if (tstate->use_tracing) { \
if (tstate->c_profilefunc != NULL) { \
@ -3472,6 +3473,10 @@ if (tstate->use_tracing) { \
} \
} \
}
#else
#define BEGIN_C_TRACE
#define END_C_TRACE
#endif
static PyObject *
@ -3503,23 +3508,15 @@ call_function(PyObject ***pp_stack, int oparg
PyCFunction meth = PyCFunction_GET_FUNCTION(func);
PyObject *self = PyCFunction_GET_SELF(func);
if (flags & METH_NOARGS && na == 0) {
#ifdef WITH_C_PROF
BEGIN_C_TRACE
#endif
x = (*meth)(self, NULL);
#ifdef WITH_C_PROF
END_C_TRACE
#endif
}
else if (flags & METH_O && na == 1) {
PyObject *arg = EXT_POP(*pp_stack);
#ifdef WITH_C_PROF
BEGIN_C_TRACE
#endif
x = (*meth)(self, arg);
#ifdef WITH_C_PROF
END_C_TRACE
#endif
Py_DECREF(arg);
}
else {
@ -3530,9 +3527,7 @@ call_function(PyObject ***pp_stack, int oparg
else {
PyObject *callargs;
callargs = load_args(pp_stack, na);
#ifdef WITH_C_PROF
BEGIN_C_TRACE
#endif
#ifdef WITH_TSC
rdtscll(*pintr0);
#endif
@ -3540,9 +3535,7 @@ call_function(PyObject ***pp_stack, int oparg
#ifdef WITH_TSC
rdtscll(*pintr1);
#endif
#ifdef WITH_C_PROF
END_C_TRACE
#endif
Py_XDECREF(callargs);
}
} else {