buffer.c: Return 64-bit values, even if they're too big for `getulong'.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 11 Oct 2019 09:01:11 +0000 (10:01 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 17 Nov 2019 01:43:05 +0000 (01:43 +0000)
buffer.c

index 4160638..17d7caa 100644 (file)
--- a/buffer.c
+++ b/buffer.c
@@ -112,7 +112,8 @@ end:
     uint##n x;                                                         \
     if (!PyArg_ParseTuple(arg, ":getu" #w)) goto end;                  \
     if (buf_getu##w(BUF_B(me), &x)) BUFERR();                          \
-    return (getulong(x));                                              \
+    if (MASK##W <= ULONG_MAX) return (getulong(x));                    \
+    else { kludge64 y; ASSIGN64(y, x); return (getk64(y)); }           \
   end:                                                                 \
     return (0);                                                                \
   }