summaryrefslogtreecommitdiffstats
path: root/Python/marshal.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2012-07-28 17:44:05 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2012-07-28 17:44:05 (GMT)
commit7e39572aa875f71d8ad7c5155fff15fe032c2648 (patch)
tree0203799bb4505d7fe07d7db385719d254f3c331c /Python/marshal.c
parent5562d9dc5dd9f9a7710a1530a114c215516d4700 (diff)
downloadcpython-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.c16
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