diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2008-09-11 06:53:30 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2008-09-11 06:53:30 (GMT) |
commit | 9fa5a2828c8007dfb678b883d65aecac93e995e4 (patch) | |
tree | c9c1b63259484b3679959bf2fa23b17d0d9933cb | |
parent | 84076d8a1180a2e5a8d2c7eeaea3f122c8579b27 (diff) | |
download | cpython-9fa5a2828c8007dfb678b883d65aecac93e995e4.zip cpython-9fa5a2828c8007dfb678b883d65aecac93e995e4.tar.gz cpython-9fa5a2828c8007dfb678b883d65aecac93e995e4.tar.bz2 |
Issue #3642: Suppress warning in obmalloc when size_t is
larger than uint. Reverts r65975. Reviewed by Brett Cannon.
-rw-r--r-- | Misc/NEWS | 5 | ||||
-rw-r--r-- | Objects/obmalloc.c | 4 |
2 files changed, 5 insertions, 4 deletions
@@ -12,6 +12,8 @@ What's New in Python 2.6 release candidate 1? Core and Builtins ----------------- +- Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. + - Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with PyString_FromFormat or PyErr_Format to display size_t values. The macro PY_FORMAT_SIZE_T is designed to select the correct format for the OS @@ -52,9 +54,6 @@ Core and Builtins - Fix problem using wrong name in decimal module reported by pychecker. -- Issue #3642: Changed type of numarenas from uint to size_t - in order to silence a compilier warning on 64bit OSes. - - Silenced another compiler warning about a used but not defined function 'stringlib_contains_obj'. diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index b4ad60a..fc5ccf7 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -517,7 +517,7 @@ new_arena(void) #endif if (unused_arena_objects == NULL) { uint i; - size_t numarenas; + uint numarenas; size_t nbytes; /* Double the number of arena objects on each allocation. @@ -526,8 +526,10 @@ new_arena(void) numarenas = maxarenas ? maxarenas << 1 : INITIAL_ARENA_OBJECTS; if (numarenas <= maxarenas) return NULL; /* overflow */ +#if SIZEOF_SIZE_T <= SIZEOF_INT if (numarenas > PY_SIZE_MAX / sizeof(*arenas)) return NULL; /* overflow */ +#endif nbytes = numarenas * sizeof(*arenas); arenaobj = (struct arena_object *)realloc(arenas, nbytes); if (arenaobj == NULL) |