{
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 *
{
unsigned long x;
memcpy((char *)&x, p, sizeof x);
- if (x <= LONG_MAX)
- return PyLong_FromLong((long)x);
return PyLong_FromUnsignedLong(x);
}
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);
}
{
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);
}
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;
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;
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;
}
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));
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));
do {
x = (x<<8) | *bytes++;
} while (--i > 0);
- if (x <= LONG_MAX)
- return PyLong_FromLong((long)x);
return PyLong_FromUnsignedLong(x);
}
/* 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);
}
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);
}
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
(unsigned char *)p,
8,
0, /* little_endian */
- 1 /* signed */);
+ 1 /* signed */);
Py_DECREF(v);
return res;
}
(unsigned char *)p,
8,
0, /* little_endian */
- 0 /* signed */);
+ 0 /* signed */);
Py_DECREF(v);
return res;
}
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 *
/* 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);
}
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);
}
(unsigned char *)p,
8,
1, /* little_endian */
- 1 /* signed */);
+ 1 /* signed */);
Py_DECREF(v);
return res;
}
(unsigned char *)p,
8,
1, /* little_endian */
- 0 /* signed */);
+ 0 /* signed */);
Py_DECREF(v);
return res;
}
num = c - '0';
while ('0' <= (c = *s++) && c <= '9')
num = num*10 + (c - '0');
- if (c == '\0')
- break;
}
else
num = 1;
return -1;
}
- Py_XSETREF(self->s_format, format);
+ Py_SETREF(self->s_format, format);
ret = prepare_s(self);
return ret;
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);
}
return NULL;
}
- /* Allocate a new string */
+ /* Allocate a new buffer */
result = PyBytes_FromStringAndSize((char *)NULL, soself->s_size);
if (result == NULL)
return NULL;