From 4fddf33c87e8a377e98b8d05eb5a9808986081c2 Mon Sep 17 00:00:00 2001 From: Sjoerd Mullender Date: Wed, 25 Aug 1993 14:09:01 +0000 Subject: XEvent.py: Added support for ExposeEvent. profile.py: Some speed improvements (I hope). rect.py: Bug fix in union(). --- Lib/lib-stdwin/rect.py | 2 +- Lib/profile.py | 49 +++++++++++++++++++++++++++++++++---------------- Lib/stdwin/rect.py | 2 +- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/Lib/lib-stdwin/rect.py b/Lib/lib-stdwin/rect.py index 9bc6342..393eafd 100644 --- a/Lib/lib-stdwin/rect.py +++ b/Lib/lib-stdwin/rect.py @@ -46,7 +46,7 @@ def intersect(list): # This works with a list or tuple argument. # def union(list): - (left, top), (right, bottom) = empty + (left, top), (right, bottom) = list[0] for (l, t), (r, b) in list[1:]: if not is_empty(((l, t), (r, b))): if l < left: left = l diff --git a/Lib/profile.py b/Lib/profile.py index a965f95..000e79a 100755 --- a/Lib/profile.py +++ b/Lib/profile.py @@ -36,20 +36,29 @@ class Profile: self.profiling = 1 t = os.times() t = t[0] + t[1] - lineno = codehack.getlineno(frame.f_code) - filename = frame.f_code.co_filename - key = filename + ':' + `lineno` + '(' + funcname + ')' + if frame.f_locals.has_key('__key'): + key = frame.f_locals['__key'] + else: + lineno = codehack.getlineno(frame.f_code) + filename = frame.f_code.co_filename + key = filename + ':' + `lineno` + '(' + funcname + ')' + frame.f_locals['__key'] = key self.call_level = depth(frame) self.cur_frame = frame pframe = frame.f_back if self.debug: s0 = 'call: ' + key + ' depth: ' + `self.call_level` + ' time: ' + `t` if pframe: - pkey = pframe.f_code.co_filename + ':' + \ - `codehack.getlineno(pframe.f_code)` \ - + '(' + \ - codehack.getcodename(pframe.f_code) \ - + ')' + if pframe.f_locals.has_key('__key'): + pkey = pframe.f_locals['__key'] + else: + pkey = pframe.f_code.co_filename + \ + ':' + \ + `codehack.getlineno(pframe.f_code)` \ + + '(' + \ + codehack.getcodename(pframe.f_code) \ + + ')' + pframe.f_locals['__key'] = pkey if self.debug: s1 = 'parent: ' + pkey if pframe.f_locals.has_key('__start_time'): @@ -121,17 +130,25 @@ class Profile: def handle_return(self, pframe, frame, s0): t = os.times() t = t[0] + t[1] - funcname = codehack.getcodename(frame.f_code) - lineno = codehack.getlineno(frame.f_code) - filename = frame.f_code.co_filename - key = filename + ':' + `lineno` + '(' + funcname + ')' - if self.debug: - s0 = s0 + key + ' depth: ' + `self.call_level` + ' time: ' + `t` - if pframe: + if frame.f_locals.has_key('__key'): + key = frame.f_locals['__key'] + else: funcname = codehack.getcodename(frame.f_code) lineno = codehack.getlineno(frame.f_code) filename = frame.f_code.co_filename - pkey = filename + ':' + `lineno` + '(' + funcname + ')' + key = filename + ':' + `lineno` + '(' + funcname + ')' + frame.f_locals['__key'] = key + if self.debug: + s0 = s0 + key + ' depth: ' + `self.call_level` + ' time: ' + `t` + if pframe: + if pframe.f_locals.has_key('__key'): + pkey = pframe.f_locals['__key'] + else: + funcname = codehack.getcodename(frame.f_code) + lineno = codehack.getlineno(frame.f_code) + filename = frame.f_code.co_filename + pkey = filename + ':' + `lineno` + '(' + funcname + ')' + pframe.f_locals['__key'] = pkey if self.debug: s1 = 'parent: '+pkey if pframe.f_locals.has_key('__start_time') and \ diff --git a/Lib/stdwin/rect.py b/Lib/stdwin/rect.py index 9bc6342..393eafd 100755 --- a/Lib/stdwin/rect.py +++ b/Lib/stdwin/rect.py @@ -46,7 +46,7 @@ def intersect(list): # This works with a list or tuple argument. # def union(list): - (left, top), (right, bottom) = empty + (left, top), (right, bottom) = list[0] for (l, t), (r, b) in list[1:]: if not is_empty(((l, t), (r, b))): if l < left: left = l -- cgit v0.12