static int bp_int(char *p, PyObject *v, const formatdef *f) { long x; Py_ssize_t i; if (get_wrapped_long(v, &x) < 0) return -1; i = f->size; if (i != SIZEOF_LONG) { if ((i == 2) && (x < -32768 || x > 32767)) RANGE_ERROR(x, f, 0, 0xffffL); #if (SIZEOF_LONG != 4) else if ((i == 4) && (x < -2147483648L || x > 2147483647L)) RANGE_ERROR(x, f, 0, 0xffffffffL); #endif #ifdef PY_STRUCT_OVERFLOW_MASKING else if ((i == 1) && (x < -128 || x > 127)) RANGE_ERROR(x, f, 0, 0xffL); #endif } do { p[--i] = (char)x; x >>= 8; } while (i > 0); return 0; }
static int lp_int(char *p, PyObject *v, const formatdef *f) { long x; Py_ssize_t i; if (get_long(v, &x) < 0) return -1; i = f->size; if (i != SIZEOF_LONG) { if ((i == 2) && (x < -32768 || x > 32767)) RANGE_ERROR(x, f, 0, 0xffffL); #if (SIZEOF_LONG != 4) else if ((i == 4) && (x < -2147483648L || x > 2147483647L)) RANGE_ERROR(x, f, 0, 0xffffffffL); #endif } do { *p++ = (char)x; x >>= 8; } while (--i > 0); return 0; }
static int np_uint(char *p, PyObject *v, const formatdef *f) { unsigned long x; unsigned int y; if (get_ulong(v, &x) < 0) return -1; y = (unsigned int)x; #if (SIZEOF_LONG > SIZEOF_INT) if (x > ((unsigned long)UINT_MAX)) RANGE_ERROR(y, f, 1, -1); #endif memcpy(p, (char *)&y, sizeof y); return 0; }
static int np_int(char *p, PyObject *v, const formatdef *f) { long x; int y; if (get_long(v, &x) < 0) return -1; #if (SIZEOF_LONG > SIZEOF_INT) if ((x < ((long)INT_MIN)) || (x > ((long)INT_MAX))) RANGE_ERROR(x, f, 0, -1); #endif y = (int)x; memcpy(p, (char *)&y, sizeof y); return 0; }
static int lp_uint(char *p, PyObject *v, const formatdef *f) { unsigned long x; Py_ssize_t i; if (get_ulong(v, &x) < 0) return -1; i = f->size; if (i != SIZEOF_LONG) { unsigned long maxint = 1; maxint <<= (unsigned long)(i * 8); if (x >= maxint) RANGE_ERROR(x, f, 1, maxint - 1); } do { *p++ = (char)x; x >>= 8; } while (--i > 0); return 0; }