summaryrefslogtreecommitdiff
path: root/coverage/tracer.c
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-07-31 07:05:55 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-07-31 07:05:55 -0400
commit4a99b79fee76a1dff3c7169c67a48ed42c90a2db (patch)
treec408200408b3b8a9fd5fedb5f575cdec4124a6bd /coverage/tracer.c
parent6e4042f1b3b9f773df23ae29c00ebb8111ac8584 (diff)
downloadpython-coveragepy-git-4a99b79fee76a1dff3c7169c67a48ed42c90a2db.tar.gz
Also intern method names for PyObject_CallMethod, though that matters far less.
Diffstat (limited to 'coverage/tracer.c')
-rw-r--r--coverage/tracer.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/coverage/tracer.c b/coverage/tracer.c
index d840e54f..9e196414 100644
--- a/coverage/tracer.c
+++ b/coverage/tracer.c
@@ -101,12 +101,16 @@ typedef struct {
} DataStack;
+/* Interned strings to speed GetAttr etc. */
+
static PyObject *str_trace;
static PyObject *str_source_filename;
static PyObject *str_file_tracer;
static PyObject *str__coverage_plugin;
static PyObject *str__coverage_plugin_name;
static PyObject *str_has_dynamic_filename;
+static PyObject *str_dynamic_source_filename;
+static PyObject *str_line_number_range;
static int
intern_strings()
@@ -125,6 +129,8 @@ intern_strings()
INTERN_STRING(str__coverage_plugin, "_coverage_plugin")
INTERN_STRING(str__coverage_plugin_name, "_coverage_plugin_name")
INTERN_STRING(str_has_dynamic_filename, "has_dynamic_filename")
+ INTERN_STRING(str_dynamic_source_filename, "dynamic_source_filename")
+ INTERN_STRING(str_line_number_range, "line_number_range")
ret = RET_OK;
@@ -583,9 +589,9 @@ CTracer_handle_call(CTracer *self, PyFrameObject *frame)
if (has_dynamic_filename == Py_True) {
PyObject * next_tracename = NULL;
STATS( self->stats.pycalls++; )
- next_tracename = PyObject_CallMethod(
- file_tracer, "dynamic_source_filename",
- "OO", tracename, frame
+ next_tracename = PyObject_CallMethodObjArgs(
+ file_tracer, str_dynamic_source_filename,
+ tracename, frame, NULL
);
if (next_tracename == NULL) {
/* An exception from the function. Alert the user with a
@@ -815,7 +821,7 @@ CTracer_handle_line(CTracer *self, PyFrameObject *frame)
if (self->cur_entry.file_tracer != Py_None) {
PyObject * from_to = NULL;
STATS( self->stats.pycalls++; )
- from_to = PyObject_CallMethod(self->cur_entry.file_tracer, "line_number_range", "O", frame);
+ from_to = PyObject_CallMethodObjArgs(self->cur_entry.file_tracer, str_line_number_range, frame, NULL);
if (from_to == NULL) {
goto error;
}