diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-07-31 07:05:55 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-07-31 07:05:55 -0400 |
commit | 4a99b79fee76a1dff3c7169c67a48ed42c90a2db (patch) | |
tree | c408200408b3b8a9fd5fedb5f575cdec4124a6bd /coverage/tracer.c | |
parent | 6e4042f1b3b9f773df23ae29c00ebb8111ac8584 (diff) | |
download | python-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.c | 14 |
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; } |