bpo-30224: remove outdated checks in struct (#1374)

diff --git a/Modules/_struct.c b/Modules/_struct.c
index a614be8..bd4de8d 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -423,13 +423,7 @@
 {
     unsigned int x;
     memcpy((char *)&x, p, sizeof x);
-#if (SIZEOF_LONG > SIZEOF_INT)
-    return PyLong_FromLong((long)x);
-#else
-    if (x <= ((unsigned int)LONG_MAX))
-        return PyLong_FromLong((long)x);
     return PyLong_FromUnsignedLong((unsigned long)x);
-#endif
 }
 
 static PyObject *
@@ -445,8 +439,6 @@
 {
     unsigned long x;
     memcpy((char *)&x, p, sizeof x);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong((long)x);
     return PyLong_FromUnsignedLong(x);
 }
 
@@ -466,17 +458,11 @@
     return PyLong_FromSize_t(x);
 }
 
-
-/* Native mode doesn't support q or Q unless the platform C supports
-   long long (or, on Windows, __int64). */
-
 static PyObject *
 nu_longlong(const char *p, const formatdef *f)
 {
     long long x;
     memcpy((char *)&x, p, sizeof x);
-    if (x >= LONG_MIN && x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, long long, long));
     return PyLong_FromLongLong(x);
 }
 
@@ -485,8 +471,6 @@
 {
     unsigned long long x;
     memcpy((char *)&x, p, sizeof x);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, unsigned long long, long));
     return PyLong_FromUnsignedLongLong(x);
 }
 
@@ -539,7 +523,7 @@
     long x;
     if (get_long(v, &x) < 0)
         return -1;
-    if (x < -128 || x > 127){
+    if (x < -128 || x > 127) {
         PyErr_SetString(StructError,
                         "byte format requires -128 <= number <= 127");
         return -1;
@@ -554,7 +538,7 @@
     long x;
     if (get_long(v, &x) < 0)
         return -1;
-    if (x < 0 || x > 255){
+    if (x < 0 || x > 255) {
         PyErr_SetString(StructError,
                         "ubyte format requires 0 <= number <= 255");
         return -1;
@@ -566,12 +550,12 @@
 static int
 np_char(char *p, PyObject *v, const formatdef *f)
 {
-    if (!PyBytes_Check(v) || PyBytes_Size(v) != 1) {
+    if (!PyBytes_Check(v) || PyBytes_GET_SIZE(v) != 1) {
         PyErr_SetString(StructError,
                         "char format requires a bytes object of length 1");
         return -1;
     }
-    *p = *PyBytes_AsString(v);
+    *p = *PyBytes_AS_STRING(v);
     return 0;
 }
 
@@ -582,7 +566,7 @@
     short y;
     if (get_long(v, &x) < 0)
         return -1;
-    if (x < SHRT_MIN || x > SHRT_MAX){
+    if (x < SHRT_MIN || x > SHRT_MAX) {
         PyErr_SetString(StructError,
                         "short format requires " Py_STRINGIFY(SHRT_MIN)
                         " <= number <= " Py_STRINGIFY(SHRT_MAX));
@@ -600,7 +584,7 @@
     unsigned short y;
     if (get_long(v, &x) < 0)
         return -1;
-    if (x < 0 || x > USHRT_MAX){
+    if (x < 0 || x > USHRT_MAX) {
         PyErr_SetString(StructError,
                         "ushort format requires 0 <= number <= "
                         Py_STRINGIFY(USHRT_MAX));
@@ -821,8 +805,6 @@
     do {
         x = (x<<8) | *bytes++;
     } while (--i > 0);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong((long)x);
     return PyLong_FromUnsignedLong(x);
 }
 
@@ -838,8 +820,6 @@
     /* Extend the sign bit. */
     if (SIZEOF_LONG_LONG > f->size)
         x |= -(x & ((long long)1 << ((8 * f->size) - 1)));
-    if (x >= LONG_MIN && x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, long long, long));
     return PyLong_FromLongLong(x);
 }
 
@@ -852,8 +832,6 @@
     do {
         x = (x<<8) | *bytes++;
     } while (--i > 0);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, unsigned long long, long));
     return PyLong_FromUnsignedLongLong(x);
 }
 
@@ -878,9 +856,7 @@
 static PyObject *
 bu_bool(const char *p, const formatdef *f)
 {
-    char x;
-    memcpy((char *)&x, p, sizeof x);
-    return PyBool_FromLong(x != 0);
+    return PyBool_FromLong(*p != 0);
 }
 
 static int
@@ -938,7 +914,7 @@
                               (unsigned char *)p,
                               8,
                               0, /* little_endian */
-                  1  /* signed */);
+                              1  /* signed */);
     Py_DECREF(v);
     return res;
 }
@@ -954,7 +930,7 @@
                               (unsigned char *)p,
                               8,
                               0, /* little_endian */
-                  0  /* signed */);
+                              0  /* signed */);
     Py_DECREF(v);
     return res;
 }
@@ -1048,9 +1024,7 @@
     do {
         x = (x<<8) | bytes[--i];
     } while (i > 0);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong((long)x);
-    return PyLong_FromUnsignedLong((long)x);
+    return PyLong_FromUnsignedLong(x);
 }
 
 static PyObject *
@@ -1065,8 +1039,6 @@
     /* Extend the sign bit. */
     if (SIZEOF_LONG_LONG > f->size)
         x |= -(x & ((long long)1 << ((8 * f->size) - 1)));
-    if (x >= LONG_MIN && x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, long long, long));
     return PyLong_FromLongLong(x);
 }
 
@@ -1079,8 +1051,6 @@
     do {
         x = (x<<8) | bytes[--i];
     } while (i > 0);
-    if (x <= LONG_MAX)
-        return PyLong_FromLong(Py_SAFE_DOWNCAST(x, unsigned long long, long));
     return PyLong_FromUnsignedLongLong(x);
 }
 
@@ -1157,7 +1127,7 @@
                               (unsigned char *)p,
                               8,
                               1, /* little_endian */
-                  1  /* signed */);
+                              1  /* signed */);
     Py_DECREF(v);
     return res;
 }
@@ -1173,7 +1143,7 @@
                               (unsigned char *)p,
                               8,
                               1, /* little_endian */
-                  0  /* signed */);
+                              0  /* signed */);
     Py_DECREF(v);
     return res;
 }
@@ -1390,8 +1360,6 @@
             num = c - '0';
             while ('0' <= (c = *s++) && c <= '9')
                 num = num*10 + (c - '0');
-            if (c == '\0')
-                break;
         }
         else
             num = 1;
@@ -1486,7 +1454,7 @@
         return -1;
     }
 
-    Py_XSETREF(self->s_format, format);
+    Py_SETREF(self->s_format, format);
 
     ret = prepare_s(self);
     return ret;
@@ -1500,7 +1468,7 @@
     if (s->s_codes != NULL) {
         PyMem_FREE(s->s_codes);
     }
-    Py_XDECREF(s->s_format);
+    Py_DECREF(s->s_format);
     Py_TYPE(s)->tp_free((PyObject *)s);
 }
 
@@ -1864,7 +1832,7 @@
         return NULL;
     }
 
-    /* Allocate a new string */
+    /* Allocate a new buffer */
     result = PyBytes_FromStringAndSize((char *)NULL, soself->s_size);
     if (result == NULL)
         return NULL;