summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2002-05-29 19:40:36 (GMT)
committerFred Drake <fdrake@acm.org>2002-05-29 19:40:36 (GMT)
commit127ee1607f41da6a9f914c8de7c3638b6d6490cc (patch)
treea7c65df5f9337dce5b8c8756906d30566ef848e8
parent187b1d8260b2434c55e37fef0fb404408829051b (diff)
downloadcpython-127ee1607f41da6a9f914c8de7c3638b6d6490cc.zip
cpython-127ee1607f41da6a9f914c8de7c3638b6d6490cc.tar.gz
cpython-127ee1607f41da6a9f914c8de7c3638b6d6490cc.tar.bz2
Minor cleanup:
- Add comment explaining the structure of the stack. - Minor optimization: make stack tuple directly usable as part of return value for enter/exit events.
-rw-r--r--Lib/hotshot/log.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/Lib/hotshot/log.py b/Lib/hotshot/log.py
index c95f7f4..9e2f068 100644
--- a/Lib/hotshot/log.py
+++ b/Lib/hotshot/log.py
@@ -41,6 +41,12 @@ class LogReader:
self.cwd = self._info['current-directory']
else:
self.cwd = None
+
+ # This mirrors the call stack of the profiled code as the log
+ # is read back in. It contains tuples of the form:
+ #
+ # (file name, line number of function def, function name)
+ #
self._stack = []
self._append = self._stack.append
self._pop = self._stack.pop
@@ -99,15 +105,15 @@ class LogReader:
if what == WHAT_ENTER:
filename, funcname = self._decode_location(fileno, lineno)
- self._append((filename, funcname, lineno))
- return what, (filename, lineno, funcname), tdelta
+ t = (filename, lineno, funcname)
+ self._append(t)
+ return what, t, tdelta
if what == WHAT_EXIT:
- filename, funcname, lineno = self._pop()
- return what, (filename, lineno, funcname), tdelta
+ return what, self._pop(), tdelta
if what == WHAT_LINENO:
- filename, funcname, firstlineno = self._stack[-1]
+ filename, firstlineno, funcname = self._stack[-1]
return what, (filename, lineno, funcname), tdelta
if what == WHAT_DEFINE_FILE: