cpython/Objects
Tim Peters d97a1c008c Lots of changes:
+ A new scheme for determining whether an address belongs to a pymalloc
  arena.  This should be 100% reliable.  The poolp->pooladdr and
  poolp->magic members are gone.  A new poolp->arenaindex member takes
  their place.  Note that the pool header overhead doesn't actually
  shrink, though, since the header is padded to a multiple of 8 bytes.

+ _PyMalloc_Free and _PyMalloc_Realloc should now be safe to call for
  any legit address, whether obtained from a _PyMalloc function or from
  the system malloc/realloc.  It should even be safe to call
   _PyMalloc_Free when *not* holding the GIL, provided that the passed-in
  address was obtained from system malloc/realloc.  Since this is
  accomplished without any locks, you better believe the code is subtle.
  I hope it's sufficiently commented.

+ The above implies we don't need the new PyMalloc_{New, NewVar, Del}
  API anymore, and could switch back to PyObject_XXX without breaking
  existing code mixing PyObject_XXX with PyMem_{Del, DEL, Free, FREE}.
  Nothing is done here about that yet, and I'd like to see this new
  code exercised more first.

+ The small object threshhold is boosted to 256 (the max).  We should
  play with that some more, but the old 64 was way too small for 2.3.

+ Getting a new arena is now done via new function new_arena().

+ Removed some unused macros, and squashed out some macros that were
  used only once to define other macros.

+ Arenas are no longer linked together.  A new vector of arena base
  addresses had to be created anyway to make address classification
  bulletproof.

+ A lot of the patch size is an illusion:  given the way address
  classification works now, it was more convenient to switch the
  sense of the prime "if" tests in the realloc and free functions,
  so the "if" and "else" blocks got swapped.

+ Assorted minor code, comment and whitespace cleanup.

Back to the Windows installer <wink>.
2002-03-30 06:09:22 +00:00
..
.cvsignore Ignore a bunch of generated files. 2000-05-02 18:34:30 +00:00
abstract.c Fix leak of NotImplemented in previous checkin to PyNumber_Add(). 2002-03-08 21:28:54 +00:00
bufferobject.c Remove the CACHE_HASH and INTERN_STRINGS preprocessor symbols. 2002-03-29 03:29:08 +00:00
cellobject.c Use new GC API. 2001-08-29 23:54:21 +00:00
classobject.c Be smarter about clearing the weakref lists for instances, instance methods, 2001-10-26 17:56:51 +00:00
cobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
complexobject.c SF bug 533198: Complex power underflow raises exception. 2002-03-22 02:48:46 +00:00
descrobject.c Add missing methods iterkeys, itervalues and iteritems to 2002-03-25 17:43:22 +00:00
dictobject.c Remove the CACHE_HASH and INTERN_STRINGS preprocessor symbols. 2002-03-29 03:29:08 +00:00
fileobject.c Grow the string buffer at a mildly exponential rate for the getc version 2002-03-23 19:41:34 +00:00
floatobject.c SF bug 525705: [2.2] underflow raise OverflowException. 2002-03-09 04:58:24 +00:00
frameobject.c This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction). 2002-03-28 20:34:59 +00:00
funcobject.c Fix for SF bug 528132 (Armin Rigo): classmethod().__get__() segfault 2002-03-18 03:09:06 +00:00
intobject.c Bugfix candidate. 2002-02-01 15:34:10 +00:00
iterobject.c Re-enable GC of iter objects. 2002-03-18 20:43:51 +00:00
listobject.c This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction). 2002-03-28 20:34:59 +00:00
longobject.c Patch #494047: removes 64-bit ?: to cope on plan9. 2002-03-09 12:02:59 +00:00
methodobject.c Introduce two new flag bits that can be set in a PyMethodDef method 2002-03-28 05:33:33 +00:00
moduleobject.c Fix for SF bug #529050 - ModuleType.__new__ crash. 2002-03-12 20:37:02 +00:00
object.c If the GC is enabled then don't use the ob_type pointer to create a list 2002-03-29 03:05:54 +00:00
obmalloc.c Lots of changes: 2002-03-30 06:09:22 +00:00
rangeobject.c Use pymalloc if it's enabled. 2002-03-22 15:33:15 +00:00
sliceobject.c Use pymalloc if it's enabled. 2002-03-22 15:33:15 +00:00
stringobject.c Remove the CACHE_HASH and INTERN_STRINGS preprocessor symbols. 2002-03-29 03:29:08 +00:00
structseq.c Use pymalloc if it's enabled. 2002-03-22 15:33:15 +00:00
tupleobject.c This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction). 2002-03-28 20:34:59 +00:00
typeobject.c Introduce two new flag bits that can be set in a PyMethodDef method 2002-03-28 05:33:33 +00:00
unicodectype.c removed "register const" from scalar arguments to the unicode 2001-06-27 22:08:26 +00:00
unicodeobject.c Fix whitespace. 2002-03-25 11:16:18 +00:00
unicodetype_db.h forgot to check in the new makeunicodedata.py script 2001-01-21 17:01:31 +00:00
weakrefobject.c Remove weakref free list. This has the side effect of fixing a memory 2002-03-27 15:18:21 +00:00
xxobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00