1. 04 Eki, 2001 2 kayıt (commit)
    • Tim Peters's avatar
      Whitespace normalization. · 527e64fd
      Tim Peters yazdı
      527e64fd
    • Guido van Rossum's avatar
      Hopefully fix the profiler right. Add a test suite that checks that · f137f75a
      Guido van Rossum yazdı
      it deals correctly with some anomalous cases; according to this test
      suite I've fixed it right.
      
      The anomalous cases had to do with 'exception' events: these aren't
      generated when they would be most helpful, and the profiler has to
      work hard to recover the right information.  The problems occur when C
      code (such as hasattr(), which is used as the example here) calls back
      into Python code and clears an exception raised by that Python code.
      Consider this example:
      
          def foo():
              hasattr(obj, "bar")
      
      Where obj is an instance from a class like this:
      
          class C:
              def __getattr__(self, name):
                  raise AttributeError
      
      The profiler sees the following sequence of events:
      
          call (foo)
          call (__getattr__)
          exception (in __getattr__)
          return (from foo)
      
      Previously, the profiler would assume the return event returned from
      __getattr__. An if statement checking for this condition and raising
      an exception was commented out...  This version does the right thing.
      f137f75a