diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-06 13:05:37 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-07-06 13:06:53 -0400 |
commit | 0911fe5e8986dc63c3e9fce8815b4730d02f1d01 (patch) | |
tree | 4643ec2092bacefe3ad9f2d9705eb61b0fa8015c /coverage/ctracer | |
parent | cfdcacea473dede9fb779256c812ff6a098a0714 (diff) | |
download | python-coveragepy-git-0911fe5e8986dc63c3e9fce8815b4730d02f1d01.tar.gz |
Revert "Remove a copy of a private macro, and just use it" #809
This reverts commit b777c96f885b8d91b5339940a31a6a8ec4bfa3f9.
Diffstat (limited to 'coverage/ctracer')
-rw-r--r-- | coverage/ctracer/tracer.c | 2 | ||||
-rw-r--r-- | coverage/ctracer/util.h | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/coverage/ctracer/tracer.c b/coverage/ctracer/tracer.c index d497a94d..7d639112 100644 --- a/coverage/ctracer/tracer.c +++ b/coverage/ctracer/tracer.c @@ -541,7 +541,7 @@ CTracer_handle_call(CTracer *self, PyFrameObject *frame) /* Make the frame right in case settrace(gettrace()) happens. */ Py_INCREF(self); - Py_XSETREF(frame->f_trace, (PyObject*)self); + My_XSETREF(frame->f_trace, (PyObject*)self); /* A call event is really a "start frame" event, and can happen for * re-entering a generator also. f_lasti is -1 for a true call, and a diff --git a/coverage/ctracer/util.h b/coverage/ctracer/util.h index cb8aceb9..5cba9b30 100644 --- a/coverage/ctracer/util.h +++ b/coverage/ctracer/util.h @@ -44,6 +44,14 @@ #endif /* Py3k */ +// Undocumented, and not in all 2.7.x, so our own copy of it. +#define My_XSETREF(op, op2) \ + do { \ + PyObject *_py_tmp = (PyObject *)(op); \ + (op) = (op2); \ + Py_XDECREF(_py_tmp); \ + } while (0) + /* The values returned to indicate ok or error. */ #define RET_OK 0 #define RET_ERROR -1 |