diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2012-07-28 17:44:05 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2012-07-28 17:44:05 (GMT) |
commit | 7e39572aa875f71d8ad7c5155fff15fe032c2648 (patch) | |
tree | 0203799bb4505d7fe07d7db385719d254f3c331c /Python/marshal.c | |
parent | 5562d9dc5dd9f9a7710a1530a114c215516d4700 (diff) | |
download | cpython-7e39572aa875f71d8ad7c5155fff15fe032c2648.zip cpython-7e39572aa875f71d8ad7c5155fff15fe032c2648.tar.gz cpython-7e39572aa875f71d8ad7c5155fff15fe032c2648.tar.bz2 |
Issue #15466: Stop using TYPE_INT64 in marshal,
to make importlib.h (and other byte code files) equal between 32-bit
and 64-bit systems.
Diffstat (limited to 'Python/marshal.c')
-rw-r--r-- | Python/marshal.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/Python/marshal.c b/Python/marshal.c index b94e8d8..6d52a84 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -31,6 +31,9 @@ #define TYPE_STOPITER 'S' #define TYPE_ELLIPSIS '.' #define TYPE_INT 'i' +/* TYPE_INT64 is deprecated. It is not + generated anymore, and support for reading it + will be removed in Python 3.4. */ #define TYPE_INT64 'I' #define TYPE_FLOAT 'f' #define TYPE_BINARY_FLOAT 'g' @@ -121,15 +124,6 @@ w_long(long x, WFILE *p) w_byte((char)((x>>24) & 0xff), p); } -#if SIZEOF_LONG > 4 -static void -w_long64(long x, WFILE *p) -{ - w_long(x, p); - w_long(x>>32, p); -} -#endif - /* We assume that Python longs are stored internally in base some power of 2**15; for the sake of portability we'll always read and write them in base exactly 2**15. */ @@ -219,8 +213,8 @@ w_object(PyObject *v, WFILE *p) #if SIZEOF_LONG > 4 long y = Py_ARITHMETIC_RIGHT_SHIFT(long, x, 31); if (y && y != -1) { - w_byte(TYPE_INT64, p); - w_long64(x, p); + /* Too large for TYPE_INT */ + w_PyLong((PyLongObject*)v, p); } else #endif |