diff options
-rw-r--r-- | coverage/collector.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/coverage/collector.py b/coverage/collector.py index 494ad2ce..a09556bd 100644 --- a/coverage/collector.py +++ b/coverage/collector.py @@ -232,6 +232,15 @@ class Collector(object): if self._collectors: self._collectors[-1].pause() + # Check to see whether we had a fullcoverage tracer installed. If so, + # get the stack frames it stashed away for us. + traces0 = [] + fn0 = sys.gettrace() + if fn0: + tracer0 = getattr(fn0, '__self__', None) + if tracer0: + traces0 = getattr(tracer0, 'traces', []) + try: # Install the tracer on this thread. fn = self._start_tracer() @@ -244,14 +253,6 @@ class Collector(object): # stack of collectors. self._collectors.append(self) - # Check to see whether we had a fullcoverage tracer installed. - traces0 = [] - fn0 = sys.gettrace() - if fn0: - tracer0 = getattr(fn0, '__self__', None) - if tracer0: - traces0 = getattr(tracer0, 'traces', []) - # Replay all the events from fullcoverage into the new trace function. for args in traces0: (frame, event, arg), lineno = args |