Skip to content

Commit 9ed5f27

Browse files
committed
Issue python#18722: Remove uses of the "register" keyword in C code.
1 parent 9eaa3e6 commit 9ed5f27

38 files changed

+288
-286
lines changed

Include/bytesobject.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,11 @@ PyAPI_FUNC(PyObject *) _PyBytes_Join(PyObject *sep, PyObject *x);
8686
0-terminated (passing a string with embedded NULL characters will
8787
cause an exception). */
8888
PyAPI_FUNC(int) PyBytes_AsStringAndSize(
89-
register PyObject *obj, /* string or Unicode object */
90-
register char **s, /* pointer to buffer variable */
91-
register Py_ssize_t *len /* pointer to length variable or NULL
92-
(only possible for 0-terminated
93-
strings) */
89+
PyObject *obj, /* string or Unicode object */
90+
char **s, /* pointer to buffer variable */
91+
Py_ssize_t *len /* pointer to length variable or NULL
92+
(only possible for 0-terminated
93+
strings) */
9494
);
9595

9696
/* Using the current locale, insert the thousands grouping

Include/unicodeobject.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,7 @@ PyAPI_FUNC(int) PyUnicode_Resize(
859859
*/
860860

861861
PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
862-
register PyObject *obj, /* Object */
862+
PyObject *obj, /* Object */
863863
const char *encoding, /* encoding */
864864
const char *errors /* error handling */
865865
);
@@ -878,7 +878,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
878878
*/
879879

880880
PyAPI_FUNC(PyObject*) PyUnicode_FromObject(
881-
register PyObject *obj /* Object */
881+
PyObject *obj /* Object */
882882
);
883883

884884
PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV(
@@ -1015,7 +1015,7 @@ PyAPI_FUNC(void) _Py_ReleaseInternedUnicodeStrings(void);
10151015
The buffer is copied into the new object. */
10161016

10171017
PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(
1018-
register const wchar_t *w, /* wchar_t buffer */
1018+
const wchar_t *w, /* wchar_t buffer */
10191019
Py_ssize_t size /* size of buffer */
10201020
);
10211021

@@ -1033,7 +1033,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(
10331033

10341034
PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
10351035
PyObject *unicode, /* Unicode object */
1036-
register wchar_t *w, /* wchar_t buffer */
1036+
wchar_t *w, /* wchar_t buffer */
10371037
Py_ssize_t size /* size of buffer */
10381038
);
10391039

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Projected Release date: 2013-09-08
1010
Core and Builtins
1111
-----------------
1212

13+
- Issue #18722: Remove uses of the "register" keyword in C code.
14+
1315
- Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions.
1416

1517
- Issue #16499: Add command line option for isolated mode.

Modules/_codecsmodule.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,9 @@ escape_encode(PyObject *self,
189189
return NULL;
190190
}
191191
else {
192-
register Py_ssize_t i;
193-
register char c;
194-
register char *p = PyBytes_AS_STRING(v);
192+
Py_ssize_t i;
193+
char c;
194+
char *p = PyBytes_AS_STRING(v);
195195

196196
for (i = 0; i < size; i++) {
197197
/* There's at least enough room for a hex escape */

Modules/_dbmmodule.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ newdbmobject(char *file, int flags, int mode)
6363
/* Methods */
6464

6565
static void
66-
dbm_dealloc(register dbmobject *dp)
66+
dbm_dealloc(dbmobject *dp)
6767
{
6868
if ( dp->di_dbm )
6969
dbm_close(dp->di_dbm);
@@ -91,7 +91,7 @@ dbm_length(dbmobject *dp)
9191
}
9292

9393
static PyObject *
94-
dbm_subscript(dbmobject *dp, register PyObject *key)
94+
dbm_subscript(dbmobject *dp, PyObject *key)
9595
{
9696
datum drec, krec;
9797
Py_ssize_t tmp_size;
@@ -166,7 +166,7 @@ static PyMappingMethods dbm_as_mapping = {
166166
};
167167

168168
static PyObject *
169-
dbm__close(register dbmobject *dp, PyObject *unused)
169+
dbm__close(dbmobject *dp, PyObject *unused)
170170
{
171171
if (dp->di_dbm)
172172
dbm_close(dp->di_dbm);
@@ -176,9 +176,9 @@ dbm__close(register dbmobject *dp, PyObject *unused)
176176
}
177177

178178
static PyObject *
179-
dbm_keys(register dbmobject *dp, PyObject *unused)
179+
dbm_keys(dbmobject *dp, PyObject *unused)
180180
{
181-
register PyObject *v, *item;
181+
PyObject *v, *item;
182182
datum key;
183183
int err;
184184

@@ -249,7 +249,7 @@ static PySequenceMethods dbm_as_sequence = {
249249
};
250250

251251
static PyObject *
252-
dbm_get(register dbmobject *dp, PyObject *args)
252+
dbm_get(dbmobject *dp, PyObject *args)
253253
{
254254
datum key, val;
255255
PyObject *defvalue = Py_None;
@@ -272,7 +272,7 @@ dbm_get(register dbmobject *dp, PyObject *args)
272272
}
273273

274274
static PyObject *
275-
dbm_setdefault(register dbmobject *dp, PyObject *args)
275+
dbm_setdefault(dbmobject *dp, PyObject *args)
276276
{
277277
datum key, val;
278278
PyObject *defvalue = NULL;

Modules/_gdbmmodule.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ newdbmobject(char *file, int flags, int mode)
7979
/* Methods */
8080

8181
static void
82-
dbm_dealloc(register dbmobject *dp)
82+
dbm_dealloc(dbmobject *dp)
8383
{
8484
if (dp->di_dbm)
8585
gdbm_close(dp->di_dbm);
@@ -112,7 +112,7 @@ dbm_length(dbmobject *dp)
112112
}
113113

114114
static PyObject *
115-
dbm_subscript(dbmobject *dp, register PyObject *key)
115+
dbm_subscript(dbmobject *dp, PyObject *key)
116116
{
117117
PyObject *v;
118118
datum drec, krec;
@@ -232,7 +232,7 @@ PyDoc_STRVAR(dbm_close__doc__,
232232
Closes the database.");
233233

234234
static PyObject *
235-
dbm_close(register dbmobject *dp, PyObject *unused)
235+
dbm_close(dbmobject *dp, PyObject *unused)
236236
{
237237
if (dp->di_dbm)
238238
gdbm_close(dp->di_dbm);
@@ -247,9 +247,9 @@ PyDoc_STRVAR(dbm_keys__doc__,
247247
Get a list of all keys in the database.");
248248

249249
static PyObject *
250-
dbm_keys(register dbmobject *dp, PyObject *unused)
250+
dbm_keys(dbmobject *dp, PyObject *unused)
251251
{
252-
register PyObject *v, *item;
252+
PyObject *v, *item;
253253
datum key, nextkey;
254254
int err;
255255

@@ -328,9 +328,9 @@ hash values, and won't be sorted by the key values. This method\n\
328328
returns the starting key.");
329329

330330
static PyObject *
331-
dbm_firstkey(register dbmobject *dp, PyObject *unused)
331+
dbm_firstkey(dbmobject *dp, PyObject *unused)
332332
{
333-
register PyObject *v;
333+
PyObject *v;
334334
datum key;
335335

336336
check_dbmobject_open(dp);
@@ -358,9 +358,9 @@ to create a list in memory that contains them all:\n\
358358
k = db.nextkey(k)");
359359

360360
static PyObject *
361-
dbm_nextkey(register dbmobject *dp, PyObject *args)
361+
dbm_nextkey(dbmobject *dp, PyObject *args)
362362
{
363-
register PyObject *v;
363+
PyObject *v;
364364
datum key, nextkey;
365365

366366
if (!PyArg_ParseTuple(args, "s#:nextkey", &key.dptr, &key.dsize))
@@ -387,7 +387,7 @@ by using this reorganization; otherwise, deleted file space will be\n\
387387
kept and reused as new (key,value) pairs are added.");
388388

389389
static PyObject *
390-
dbm_reorganize(register dbmobject *dp, PyObject *unused)
390+
dbm_reorganize(dbmobject *dp, PyObject *unused)
391391
{
392392
check_dbmobject_open(dp);
393393
errno = 0;
@@ -408,7 +408,7 @@ When the database has been opened in fast mode, this method forces\n\
408408
any unwritten data to be written to the disk.");
409409

410410
static PyObject *
411-
dbm_sync(register dbmobject *dp, PyObject *unused)
411+
dbm_sync(dbmobject *dp, PyObject *unused)
412412
{
413413
check_dbmobject_open(dp);
414414
gdbm_sync(dp->di_dbm);

Modules/arraymodule.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ newarrayobject(PyTypeObject *type, Py_ssize_t size, struct arraydescr *descr)
513513
static PyObject *
514514
getarrayitem(PyObject *op, Py_ssize_t i)
515515
{
516-
register arrayobject *ap;
516+
arrayobject *ap;
517517
assert(array_Check(op));
518518
ap = (arrayobject *)op;
519519
assert(i>=0 && i<Py_SIZE(ap));
@@ -1225,8 +1225,8 @@ Byteswap all items of the array. If the items in the array are not 1, 2,\n\
12251225
static PyObject *
12261226
array_reverse(arrayobject *self, PyObject *unused)
12271227
{
1228-
register Py_ssize_t itemsize = self->ob_descr->itemsize;
1229-
register char *p, *q;
1228+
Py_ssize_t itemsize = self->ob_descr->itemsize;
1229+
char *p, *q;
12301230
/* little buffer to hold items while swapping */
12311231
char tmp[256]; /* 8 is probably enough -- but why skimp */
12321232
assert((size_t)itemsize <= sizeof(tmp));

Objects/bytearrayobject.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -862,9 +862,9 @@ bytearray_repr(PyByteArrayObject *self)
862862
/* 15 == strlen(quote_prefix) + 2 + strlen(quote_postfix) + 1 */
863863
size_t newsize;
864864
PyObject *v;
865-
register Py_ssize_t i;
866-
register char c;
867-
register char *p;
865+
Py_ssize_t i;
866+
char c;
867+
char *p;
868868
int quote;
869869
char *test, *start;
870870
char *buffer;
@@ -1431,9 +1431,9 @@ table, which must be a bytes object of length 256.");
14311431
static PyObject *
14321432
bytearray_translate(PyByteArrayObject *self, PyObject *args)
14331433
{
1434-
register char *input, *output;
1435-
register const char *table;
1436-
register Py_ssize_t i, c;
1434+
char *input, *output;
1435+
const char *table;
1436+
Py_ssize_t i, c;
14371437
PyObject *input_obj = (PyObject*)self;
14381438
const char *output_start;
14391439
Py_ssize_t inlen;

Objects/bytes_methods.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ and there is at least one character in B, False otherwise.");
1010
PyObject*
1111
_Py_bytes_isspace(const char *cptr, Py_ssize_t len)
1212
{
13-
register const unsigned char *p
13+
const unsigned char *p
1414
= (unsigned char *) cptr;
15-
register const unsigned char *e;
15+
const unsigned char *e;
1616

1717
/* Shortcut for single character strings */
1818
if (len == 1 && Py_ISSPACE(*p))
@@ -40,9 +40,9 @@ and there is at least one character in B, False otherwise.");
4040
PyObject*
4141
_Py_bytes_isalpha(const char *cptr, Py_ssize_t len)
4242
{
43-
register const unsigned char *p
43+
const unsigned char *p
4444
= (unsigned char *) cptr;
45-
register const unsigned char *e;
45+
const unsigned char *e;
4646

4747
/* Shortcut for single character strings */
4848
if (len == 1 && Py_ISALPHA(*p))
@@ -70,9 +70,9 @@ and there is at least one character in B, False otherwise.");
7070
PyObject*
7171
_Py_bytes_isalnum(const char *cptr, Py_ssize_t len)
7272
{
73-
register const unsigned char *p
73+
const unsigned char *p
7474
= (unsigned char *) cptr;
75-
register const unsigned char *e;
75+
const unsigned char *e;
7676

7777
/* Shortcut for single character strings */
7878
if (len == 1 && Py_ISALNUM(*p))
@@ -100,9 +100,9 @@ and there is at least one character in B, False otherwise.");
100100
PyObject*
101101
_Py_bytes_isdigit(const char *cptr, Py_ssize_t len)
102102
{
103-
register const unsigned char *p
103+
const unsigned char *p
104104
= (unsigned char *) cptr;
105-
register const unsigned char *e;
105+
const unsigned char *e;
106106

107107
/* Shortcut for single character strings */
108108
if (len == 1 && Py_ISDIGIT(*p))
@@ -130,9 +130,9 @@ at least one cased character in B, False otherwise.");
130130
PyObject*
131131
_Py_bytes_islower(const char *cptr, Py_ssize_t len)
132132
{
133-
register const unsigned char *p
133+
const unsigned char *p
134134
= (unsigned char *) cptr;
135-
register const unsigned char *e;
135+
const unsigned char *e;
136136
int cased;
137137

138138
/* Shortcut for single character strings */
@@ -164,9 +164,9 @@ at least one cased character in B, False otherwise.");
164164
PyObject*
165165
_Py_bytes_isupper(const char *cptr, Py_ssize_t len)
166166
{
167-
register const unsigned char *p
167+
const unsigned char *p
168168
= (unsigned char *) cptr;
169-
register const unsigned char *e;
169+
const unsigned char *e;
170170
int cased;
171171

172172
/* Shortcut for single character strings */
@@ -200,9 +200,9 @@ otherwise.");
200200
PyObject*
201201
_Py_bytes_istitle(const char *cptr, Py_ssize_t len)
202202
{
203-
register const unsigned char *p
203+
const unsigned char *p
204204
= (unsigned char *) cptr;
205-
register const unsigned char *e;
205+
const unsigned char *e;
206206
int cased, previous_is_cased;
207207

208208
/* Shortcut for single character strings */
@@ -217,7 +217,7 @@ _Py_bytes_istitle(const char *cptr, Py_ssize_t len)
217217
cased = 0;
218218
previous_is_cased = 0;
219219
for (; p < e; p++) {
220-
register const unsigned char ch = *p;
220+
const unsigned char ch = *p;
221221

222222
if (Py_ISUPPER(ch)) {
223223
if (previous_is_cased)

0 commit comments

Comments
 (0)