bpo-19418: audioop.c: Fix warnings on -0x80000000 (GH-7453) · python/cpython@e5b79c5 (original) (raw)
`@@ -25,7 +25,8 @@ typedef short PyInt16;
`
25
25
`#endif
`
26
26
``
27
27
`static const int maxvals[] = {0, 0x7F, 0x7FFF, 0x7FFFFF, 0x7FFFFFFF};
`
28
``
`-
static const int minvals[] = {0, -0x80, -0x8000, -0x800000, -0x80000000};
`
``
28
`+
/* -1 trick is needed on Windows to support -0x80000000 without a warning */
`
``
29
`+
static const int minvals[] = {0, -0x80, -0x8000, -0x800000, -0x7FFFFFFF-1};
`
29
30
`static const unsigned int masks[] = {0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF};
`
30
31
``
31
32
`static int
`
`@@ -393,7 +394,9 @@ audioop_minmax(PyObject *self, PyObject *args)
`
393
394
`signed char *cp;
`
394
395
`int len, size, val = 0;
`
395
396
`int i;
`
396
``
`-
int min = 0x7fffffff, max = -0x80000000;
`
``
397
`+
/* -1 trick below is needed on Windows to support -0x80000000 without
`
``
398
`+
a warning */
`
``
399
`+
int min = 0x7fffffff, max = -0x7FFFFFFF-1;
`
397
400
``
398
401
`if (!PyArg_ParseTuple(args, "s#i:minmax", &cp, &len, &size))
`
399
402
`return NULL;
`