From: Michael W. Hudson Date: Tue, 24 Sep 2002 11:55:54 +0000 (+0000) Subject: backport theller's checkin of X-Git-Tag: v2.2.2b1~134 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=78e179cdcf7541249d83ee0a84192063cca54281;p=thirdparty%2FPython%2Fcpython.git backport theller's checkin of revision 1.73 of marshal.c Fix SF 588452: debug build crashes on marshal.dumps([128] * 1000). See there for a description. Added test case. Bugfix candidate for 2.2.x, not sure about previous versions: probably low priority, because virtually no one runs debug builds. --- diff --git a/Python/marshal.c b/Python/marshal.c index 0d21e847b770..6ba20c9698a6 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -82,17 +82,17 @@ w_string(char *s, int n, WFILE *p) static void w_short(int x, WFILE *p) { - w_byte( x & 0xff, p); - w_byte((x>> 8) & 0xff, p); + w_byte((char)( x & 0xff), p); + w_byte((char)((x>> 8) & 0xff), p); } static void w_long(long x, WFILE *p) { - w_byte((int)( x & 0xff), p); - w_byte((int)((x>> 8) & 0xff), p); - w_byte((int)((x>>16) & 0xff), p); - w_byte((int)((x>>24) & 0xff), p); + w_byte((char)( x & 0xff), p); + w_byte((char)((x>> 8) & 0xff), p); + w_byte((char)((x>>16) & 0xff), p); + w_byte((char)((x>>24) & 0xff), p); } #if SIZEOF_LONG > 4