1. 06 Dec, 2001 10 commits
    • Jeremy Hylton's avatar
      Fix memory leak in dict_to_map(), SF bug [ #485152 ] memory leak in test_scope. · 32acea18
      Jeremy Hylton authored
      PyCell_Set() incremenets the reference count, so the earlier XINCREF
      causes a leak.
      
      Also make a number of small performance improvements to the code on
      the assumption that most of the time variables are not rebound across
      a FastToLocals() / LocalsToFast() pair.
      
      Replace uses of PyCell_Set() and PyCell_Get() with PyCell_SET() and
      PyCell_GET(), since the frame is guaranteed to contain cells.
      32acea18
    • Jeremy Hylton's avatar
      Little stuff. · 50c08614
      Jeremy Hylton authored
      Add a missing DECREF in an obscure corner.  If the str() or repr() of
      an object passed to a string interpolation -- e.g. "%s" % obj --
      returns a non-string, the returned object was leaked.
      
      Repair an indentation glitch.
      
      Replace a bunch of PyString_AsString() calls (and their ilk) with
      macros.
      50c08614
    • Jeremy Hylton's avatar
      Fix [ #489673 ] memory leak in test_symtable: Free the st_future slot. · 0c58fa3b
      Jeremy Hylton authored
      The st_future slot of the symtable is not freed by PySymtable_Free()
      because it is shared by the symtable and compiling structs in
      compiel.c.  Since it is shared, it is explicitly deallocated when the
      compiling struct is freed.
      0c58fa3b
    • Guido van Rossum's avatar
      Fix a typo (probably caused by autocompletion <blush>) that caused a · 0241b6bc
      Guido van Rossum authored
      leak when a class defined a __metaclass__.  This fixes the problem
      reported on python-dev by Ping; I dunno if it's the same as SF bug
      #489669 (since that mentions Unicode).
      0241b6bc
    • Tim Peters's avatar
      SF bug #488514: -Qnew needs work · 1ff5ccdf
      Tim Peters authored
      Big Hammer to implement -Qnew as PEP 238 says it should work (a global
      option affecting all instances of "/").
      
      pydebug.h, main.c, pythonrun.c:  define a private _Py_QnewFlag flag, true
      iff -Qnew is passed on the command line.  This should go away (as the
      comments say) when true division becomes The Rule.  This is
      deliberately not exposed to runtime inspection or modification:  it's
      a one-way one-shot switch to pretend you're using Python 3.
      
      ceval.c:  when _Py_QnewFlag is set, treat BINARY_DIVIDE as
      BINARY_TRUE_DIVIDE.
      
      test_{descr, generators, zipfile}.py:  fiddle so these pass under
      -Qnew too.  This was just a matter of s!/!//! in test_generators and
      test_zipfile.  test_descr was trickier, as testbinop() is passed
      assumptions that "/" is the same as calling a "__div__" method; put
      a temporary hack there to call "__truediv__" instead when the method
      name is "__div__" and 1/2 evaluates to 0.5.
      
      Three standard tests still fail under -Qnew (on Windows; somebody
      please try the Linux tests with -Qnew too!  Linux runs a whole bunch
      of tests Windows doesn't):
          test_augassign
          test_class
          test_coercion
      I can't stay awake longer to stare at this (be my guest).  Offhand
      cures weren't obvious, nor was it even obvious that cures are possible
      without major hackery.
      
      Question:  when -Qnew is in effect, should calls to __div__ magically
      change into calls to __truediv__?  See "major hackery" at tail end of
      last paragraph <wink>.
      1ff5ccdf
    • Fred Drake's avatar
      Fix appendChild() and insertBefore() (and replaceChild() indirectly) when · ca2b6592
      Fred Drake authored
      the node being added is a fragment node.
      This closes SF bug #487929.
      ca2b6592
    • Guido van Rossum's avatar
    • Guido van Rossum's avatar
    • Guido van Rossum's avatar
    • Guido van Rossum's avatar
      The previous checkin to clear __slots__ variables did a little bit of · 5b725288
      Guido van Rossum authored
      the work each time it found another base class.  All the work is
      contiguous, so we might as well do it all at once at the end.
      5b725288
  2. 05 Dec, 2001 20 commits
  3. 04 Dec, 2001 10 commits