diff options
| author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-11-15 08:05:58 -0800 |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-11-15 18:05:58 +0200 |
| commit | d15bb5fcad584e113836486d17c6abcbf2168a86 (patch) | |
| tree | 42612d7712fa7c0cb9d448aa38f0279199be2680 /Python | |
| parent | 3864248866d6224336c7be49670447cb4d125cd6 (diff) | |
| download | cpython-git-d15bb5fcad584e113836486d17c6abcbf2168a86.tar.gz | |
bpo-32011: Revert "Issue GH-15480: Remove the deprecated and unused TYPE_INT64 code from marshal." (GH-4381) (#4405)
Simplify the reverted code.
This reverts commit e9bbe8b87ba2874efba0474af5cc7d5941dbf742.
(cherry picked from commit 00987f6230fcdbecc8d9ab4b2b9fae8f99a1a4a9)
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/marshal.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Python/marshal.c b/Python/marshal.c index 22ca49c756..91a57c293b 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -32,6 +32,9 @@ #define TYPE_STOPITER 'S' #define TYPE_ELLIPSIS '.' #define TYPE_INT 'i' +/* TYPE_INT64 is not generated anymore. + Supported for backward compatibility only. */ +#define TYPE_INT64 'I' #define TYPE_FLOAT 'f' #define TYPE_BINARY_FLOAT 'g' #define TYPE_COMPLEX 'x' @@ -777,6 +780,19 @@ r_long(RFILE *p) return x; } +/* r_long64 deals with the TYPE_INT64 code. */ +static PyObject * +r_long64(RFILE *p) +{ + const unsigned char *buffer = (const unsigned char *) r_string(8, p); + if (buffer == NULL) { + return NULL; + } + return _PyLong_FromByteArray(buffer, 8, + 1 /* little endian */, + 1 /* signed */); +} + static PyObject * r_PyLong(RFILE *p) { @@ -976,6 +992,11 @@ r_object(RFILE *p) R_REF(retval); break; + case TYPE_INT64: + retval = r_long64(p); + R_REF(retval); + break; + case TYPE_LONG: retval = r_PyLong(p); R_REF(retval); |
