Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 83c9edc

Browse files
committed
Fix error in comment, and in test_long_api and test_longlong_api remove
the need for the F_ERROR macro.
1 parent c605784 commit 83c9edc

2 files changed

Lines changed: 21 additions & 26 deletions

File tree

Modules/_testcapimodule.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ raise_test_long_error(const char* msg)
202202
#define F_PY_TO_S PyLong_AsLong
203203
#define F_U_TO_PY PyLong_FromUnsignedLong
204204
#define F_PY_TO_U PyLong_AsUnsignedLong
205-
#define F_ERROR raise_test_long_error
206205

207206
#include "testcapi_long.h"
208207

@@ -212,7 +211,7 @@ test_long_api(PyObject* self, PyObject* args)
212211
if (!PyArg_ParseTuple(args, ":test_long_api"))
213212
return NULL;
214213

215-
return TESTNAME();
214+
return TESTNAME(raise_test_long_error);
216215
}
217216

218217
#undef TESTNAME
@@ -221,7 +220,6 @@ test_long_api(PyObject* self, PyObject* args)
221220
#undef F_PY_TO_S
222221
#undef F_U_TO_PY
223222
#undef F_PY_TO_U
224-
#undef F_ERROR
225223

226224
#ifdef HAVE_LONG_LONG
227225

@@ -237,7 +235,6 @@ raise_test_longlong_error(const char* msg)
237235
#define F_PY_TO_S PyLong_AsLongLong
238236
#define F_U_TO_PY PyLong_FromUnsignedLongLong
239237
#define F_PY_TO_U PyLong_AsUnsignedLongLong
240-
#define F_ERROR raise_test_longlong_error
241238

242239
#include "testcapi_long.h"
243240

@@ -247,7 +244,7 @@ test_longlong_api(PyObject* self, PyObject* args)
247244
if (!PyArg_ParseTuple(args, ":test_longlong_api"))
248245
return NULL;
249246

250-
return TESTNAME();
247+
return TESTNAME(raise_test_longlong_error);
251248
}
252249

253250
#undef TESTNAME
@@ -256,7 +253,6 @@ test_longlong_api(PyObject* self, PyObject* args)
256253
#undef F_PY_TO_S
257254
#undef F_U_TO_PY
258255
#undef F_PY_TO_U
259-
#undef F_ERROR
260256

261257
#endif /* ifdef HAVE_LONG_LONG */
262258

Modules/testcapi_long.h

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
F_S_TO_PY convert signed to pylong; TYPENAME -> PyObject*
55
F_PY_TO_S convert pylong to signed; PyObject* -> TYPENAME
66
F_U_TO_PY convert unsigned to pylong; unsigned TYPENAME -> PyObject*
7-
F_PY_TO_U convert pylong to unsigned; PyObject* -> TypeError
8-
F_ERROR error-report function; char* -> PyObject* (returns NULL)
7+
F_PY_TO_U convert pylong to unsigned; PyObject* -> unsigned TYPENAME
98
*/
109

1110
static PyObject *
12-
TESTNAME()
11+
TESTNAME(PyObject *error(const char*))
1312
{
1413
const int NBITS = sizeof(TYPENAME) * 8;
1514
unsigned TYPENAME base;
@@ -45,30 +44,30 @@ TESTNAME()
4544

4645
pyresult = F_U_TO_PY(uin);
4746
if (pyresult == NULL)
48-
return F_ERROR(
47+
return error(
4948
"unsigned unexpected null result");
5049

5150
uout = F_PY_TO_U(pyresult);
5251
if (uout == (unsigned TYPENAME)-1 && PyErr_Occurred())
53-
return F_ERROR(
52+
return error(
5453
"unsigned unexpected -1 result");
5554
if (uout != uin)
56-
return F_ERROR(
55+
return error(
5756
"unsigned output != input");
5857
UNBIND(pyresult);
5958

6059
in = (TYPENAME)uin;
6160
pyresult = F_S_TO_PY(in);
6261
if (pyresult == NULL)
63-
return F_ERROR(
62+
return error(
6463
"signed unexpected null result");
6564

6665
out = F_PY_TO_S(pyresult);
6766
if (out == (TYPENAME)-1 && PyErr_Occurred())
68-
return F_ERROR(
67+
return error(
6968
"signed unexpected -1 result");
7069
if (out != in)
71-
return F_ERROR(
70+
return error(
7271
"signed output != input");
7372
UNBIND(pyresult);
7473
}
@@ -85,37 +84,37 @@ TESTNAME()
8584

8685
one = PyLong_FromLong(1);
8786
if (one == NULL)
88-
return F_ERROR(
87+
return error(
8988
"unexpected NULL from PyLong_FromLong");
9089

9190
/* Unsigned complains about -1? */
9291
x = PyNumber_Negative(one);
9392
if (x == NULL)
94-
return F_ERROR(
93+
return error(
9594
"unexpected NULL from PyNumber_Negative");
9695

9796
uout = F_PY_TO_U(x);
9897
if (uout != (unsigned TYPENAME)-1 || !PyErr_Occurred())
99-
return F_ERROR(
98+
return error(
10099
"PyLong_AsUnsignedXXX(-1) didn't complain");
101100
PyErr_Clear();
102101
UNBIND(x);
103102

104103
/* Unsigned complains about 2**NBITS? */
105104
y = PyLong_FromLong((long)NBITS);
106105
if (y == NULL)
107-
return F_ERROR(
106+
return error(
108107
"unexpected NULL from PyLong_FromLong");
109108

110109
x = PyNumber_Lshift(one, y); /* 1L << NBITS, == 2**NBITS */
111110
UNBIND(y);
112111
if (x == NULL)
113-
return F_ERROR(
112+
return error(
114113
"unexpected NULL from PyNumber_Lshift");
115114

116115
uout = F_PY_TO_U(x);
117116
if (uout != (unsigned TYPENAME)-1 || !PyErr_Occurred())
118-
return F_ERROR(
117+
return error(
119118
"PyLong_AsUnsignedXXX(2**NBITS) didn't "
120119
"complain");
121120
PyErr_Clear();
@@ -125,12 +124,12 @@ TESTNAME()
125124
y = PyNumber_Rshift(x, one); /* 2**(NBITS-1) */
126125
UNBIND(x);
127126
if (y == NULL)
128-
return F_ERROR(
127+
return error(
129128
"unexpected NULL from PyNumber_Rshift");
130129

131130
out = F_PY_TO_S(y);
132131
if (out != (TYPENAME)-1 || !PyErr_Occurred())
133-
return F_ERROR(
132+
return error(
134133
"PyLong_AsXXX(2**(NBITS-1)) didn't "
135134
"complain");
136135
PyErr_Clear();
@@ -140,18 +139,18 @@ TESTNAME()
140139
x = PyNumber_Negative(y); /* -(2**(NBITS-1)) */
141140
UNBIND(y);
142141
if (x == NULL)
143-
return F_ERROR(
142+
return error(
144143
"unexpected NULL from PyNumber_Negative");
145144

146145
y = PyNumber_Subtract(x, one); /* -(2**(NBITS-1))-1 */
147146
UNBIND(x);
148147
if (y == NULL)
149-
return F_ERROR(
148+
return error(
150149
"unexpected NULL from PyNumber_Subtract");
151150

152151
out = F_PY_TO_S(y);
153152
if (out != (TYPENAME)-1 || !PyErr_Occurred())
154-
return F_ERROR(
153+
return error(
155154
"PyLong_AsXXX(-2**(NBITS-1)-1) didn't "
156155
"complain");
157156
PyErr_Clear();

0 commit comments

Comments
 (0)