[Python-checkins] r69641 - in python/branches/io-c/Modules: _bufferedio.c _iobase.c _iomodule.h _textio.c io.c
benjamin.peterson
python-checkins at python.org
Sun Feb 15 17:12:37 CET 2009
Author: benjamin.peterson
Date: Sun Feb 15 17:12:37 2009
New Revision: 69641
Log:
make interned strings globals again ;(
putting them in the module state was asking for trouble when the module
was dealloced before the classes in it were
Modified:
python/branches/io-c/Modules/_bufferedio.c
python/branches/io-c/Modules/_iobase.c
python/branches/io-c/Modules/_iomodule.h
python/branches/io-c/Modules/_textio.c
python/branches/io-c/Modules/io.c
Modified: python/branches/io-c/Modules/_bufferedio.c
==============================================================================
--- python/branches/io-c/Modules/_bufferedio.c (original)
+++ python/branches/io-c/Modules/_bufferedio.c Sun Feb 15 17:12:37 2009
@@ -344,7 +344,6 @@
{
PyObject *pos = Py_None;
PyObject *res;
- _PyIO_State *state = IO_STATE;
CHECK_INITIALIZED(self)
if (!PyArg_ParseTuple(args, "|O:truncate", &pos)) {
@@ -355,7 +354,7 @@
* and a flush may be necessary to synch both views of the current
* file state.
*/
- res = PyObject_CallMethodObjArgs(self->raw, state->str_flush, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_flush, NULL);
if (res == NULL)
return NULL;
Py_DECREF(res);
@@ -371,7 +370,7 @@
/* XXX: Should seek() be used, instead of passing the position
* XXX directly to truncate?
*/
- res = PyObject_CallMethodObjArgs(self->raw, state->str_truncate, pos, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_truncate, pos, NULL);
Py_DECREF(pos);
return res;
@@ -383,7 +382,7 @@
BufferedIOMixin_flush(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_flush, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_flush, NULL);
}
static int
@@ -392,7 +391,7 @@
int closed;
PyObject *res;
CHECK_INITIALIZED_INT(self)
- res = PyObject_GetAttr(self->raw, IO_STATE->str_closed);
+ res = PyObject_GetAttr(self->raw, _PyIO_str_closed);
if (res == NULL)
return -1;
closed = PyObject_IsTrue(res);
@@ -404,7 +403,7 @@
BufferedIOMixin_closed_get(BufferedObject *self, void *context)
{
CHECK_INITIALIZED(self)
- return PyObject_GetAttr(self->raw, IO_STATE->str_closed);
+ return PyObject_GetAttr(self->raw, _PyIO_str_closed);
}
static PyObject *
@@ -412,7 +411,6 @@
{
PyObject *res = NULL;
int r;
- _PyIO_State *state = IO_STATE;
CHECK_INITIALIZED(self)
ENTER_BUFFERED(self)
@@ -427,7 +425,7 @@
}
/* flush() will most probably re-take the lock, so drop it first */
LEAVE_BUFFERED(self)
- res = PyObject_CallMethodObjArgs((PyObject *)self, state->str_flush, NULL);
+ res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
ENTER_BUFFERED(self)
if (res == NULL) {
/* If flush() fails, just give up */
@@ -438,7 +436,7 @@
}
Py_XDECREF(res);
- res = PyObject_CallMethodObjArgs(self->raw, state->str_close, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_close, NULL);
end:
LEAVE_BUFFERED(self)
@@ -451,21 +449,21 @@
BufferedIOMixin_seekable(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_seekable, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_seekable, NULL);
}
static PyObject *
BufferedIOMixin_readable(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_readable, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_readable, NULL);
}
static PyObject *
BufferedIOMixin_writable(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_writable, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_writable, NULL);
}
static PyObject *
@@ -488,14 +486,14 @@
BufferedIOMixin_fileno(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_fileno, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_fileno, NULL);
}
static PyObject *
BufferedIOMixin_isatty(BufferedObject *self, PyObject *args)
{
CHECK_INITIALIZED(self)
- return PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_isatty, NULL);
+ return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_isatty, NULL);
}
@@ -542,7 +540,7 @@
{
PyObject *res;
Py_off_t n;
- res = PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_tell, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_tell, NULL);
if (res == NULL)
return -1;
n = PyNumber_AsOff_t(res, PyExc_ValueError);
@@ -571,7 +569,7 @@
Py_DECREF(posobj);
return -1;
}
- res = PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_seek,
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_seek,
posobj, whenceobj, NULL);
Py_DECREF(posobj);
Py_DECREF(whenceobj);
@@ -1036,7 +1034,7 @@
}
_BufferedReader_reset_buf(self);
}
- res = PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_truncate, pos, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_truncate, pos, NULL);
if (res == NULL)
goto end;
/* Reset cached position */
@@ -1064,7 +1062,7 @@
}
else {
line = PyObject_CallMethodObjArgs((PyObject *)self,
- IO_STATE->str_readline, NULL);
+ _PyIO_str_readline, NULL);
if (line && !PyBytes_Check(line)) {
PyErr_Format(PyExc_IOError,
"readline() should have returned a bytes object, "
@@ -1142,7 +1140,7 @@
memobj = PyMemoryView_FromBuffer(&buf);
if (memobj == NULL)
return -1;
- res = PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_readinto, memobj, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_readinto, memobj, NULL);
Py_DECREF(memobj);
if (res == NULL)
return -1;
@@ -1187,7 +1185,6 @@
PyObject *data, *res = NULL;
Py_ssize_t current_size, remaining, written;
char *out;
- _PyIO_State *state = IO_STATE;
static PyObject *sep = NULL;
/* Special case for when the number of bytes to read is unspecified. */
@@ -1228,7 +1225,7 @@
}
/* Read until EOF or until read() would block. */
- data = PyObject_CallMethodObjArgs(self->raw, state->str_read, NULL);
+ data = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_read, NULL);
if (data == NULL) {
Py_DECREF(chunks);
return NULL;
@@ -1524,7 +1521,7 @@
memobj = PyMemoryView_FromBuffer(&buf);
if (memobj == NULL)
return -1;
- res = PyObject_CallMethodObjArgs(self->raw, IO_STATE->str_write, memobj, NULL);
+ res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_write, memobj, NULL);
Py_DECREF(memobj);
if (res == NULL)
return -1;
Modified: python/branches/io-c/Modules/_iobase.c
==============================================================================
--- python/branches/io-c/Modules/_iobase.c (original)
+++ python/branches/io-c/Modules/_iobase.c Sun Feb 15 17:12:37 2009
@@ -134,7 +134,7 @@
int closed;
/* This gets the derived attribute, which is *not* __IOBase_closed
in most cases! */
- res = PyObject_GetAttr(self, IO_STATE->str_closed);
+ res = PyObject_GetAttr(self, _PyIO_str_closed);
if (res == NULL)
return 0;
closed = PyObject_IsTrue(res);
@@ -173,7 +173,7 @@
if (IS_CLOSED(self))
Py_RETURN_NONE;
- res = PyObject_CallMethodObjArgs(self, IO_STATE->str_flush, NULL);
+ res = PyObject_CallMethodObjArgs(self, _PyIO_str_flush, NULL);
PyObject_SetAttrString(self, "__IOBase_closed", Py_True);
if (res == NULL) {
/* If flush() fails, just give up */
@@ -194,14 +194,13 @@
PyObject *res;
PyObject *tp, *v, *tb;
int closed = 1;
- _PyIO_State *state = IO_STATE;
PyErr_Fetch(&tp, &v, &tb);
/* We need to resurrect the object as calling close() can invoke
arbitrary code. */
((PyObject *) self)->ob_refcnt++;
/* The object could already be in an usable state, so we'll take any
error as meaning "stop, nothing to see here". */
- res = PyObject_GetAttr(self, state->str_closed);
+ res = PyObject_GetAttr(self, _PyIO_str_closed);
if (res == NULL)
PyErr_Clear();
else {
@@ -211,7 +210,7 @@
PyErr_Clear();
}
if (closed == 0) {
- res = PyObject_CallMethodObjArgs((PyObject *) self, state->str_close,
+ res = PyObject_CallMethodObjArgs((PyObject *) self, _PyIO_str_close,
NULL);
if (res == NULL)
PyErr_Clear();
@@ -248,7 +247,7 @@
PyObject *
_PyIOBase_checkSeekable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodObjArgs(self, IO_STATE->str_seekable, NULL);
+ PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_seekable, NULL);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -277,7 +276,7 @@
PyObject *
_PyIOBase_checkReadable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodObjArgs(self, IO_STATE->str_readable, NULL);
+ PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_readable, NULL);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -306,7 +305,7 @@
PyObject *
_PyIOBase_checkWritable(PyObject *self, PyObject *args)
{
- PyObject *res = PyObject_CallMethodObjArgs(self, IO_STATE->str_writable, NULL);
+ PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_writable, NULL);
if (res == NULL)
return NULL;
if (res != Py_True) {
@@ -335,7 +334,7 @@
static PyObject *
IOBase_exit(PyObject *self, PyObject *args)
{
- return PyObject_CallMethodObjArgs(self, IO_STATE->str_close, NULL);
+ return PyObject_CallMethodObjArgs(self, _PyIO_str_close, NULL);
}
/* Lower-level APIs */
@@ -485,7 +484,7 @@
static PyObject *
IOBase_iternext(PyObject *self)
{
- PyObject *line = PyObject_CallMethodObjArgs(self, IO_STATE->str_readline, NULL);
+ PyObject *line = PyObject_CallMethodObjArgs(self, _PyIO_str_readline, NULL);
if (line == NULL)
return NULL;
@@ -562,7 +561,6 @@
static PyObject *
IOBase_writelines(PyObject *self, PyObject *args)
{
- _PyIO_State *state = IO_STATE;
PyObject *lines, *iter, *res;
if (!PyArg_ParseTuple(args, "O:writelines", &lines)) {
@@ -587,7 +585,7 @@
break; /* Stop Iteration */
}
- res = PyObject_CallMethodObjArgs(self, state->str_write, line, NULL);
+ res = PyObject_CallMethodObjArgs(self, _PyIO_str_write, line, NULL);
Py_DECREF(line);
if (res == NULL) {
Py_DECREF(iter);
@@ -721,7 +719,7 @@
if (b == NULL)
return NULL;
- res = PyObject_CallMethodObjArgs(self, IO_STATE->str_readinto, b, NULL);
+ res = PyObject_CallMethodObjArgs(self, _PyIO_str_readinto, b, NULL);
if (res == NULL) {
Py_DECREF(b);
return NULL;
Modified: python/branches/io-c/Modules/_iomodule.h
==============================================================================
--- python/branches/io-c/Modules/_iomodule.h (original)
+++ python/branches/io-c/Modules/_iomodule.h Sun Feb 15 17:12:37 2009
@@ -100,31 +100,30 @@
PyObject *locale_module;
PyObject *unsupported_operation;
-
- /* various interned strings */
- PyObject *str_close;
- PyObject *str_closed;
- PyObject *str_decode;
- PyObject *str_encode;
- PyObject *str_fileno;
- PyObject *str_flush;
- PyObject *str_getstate;
- PyObject *str_isatty;
- PyObject *str_newlines;
- PyObject *str_read;
- PyObject *str_read1;
- PyObject *str_readable;
- PyObject *str_readinto;
- PyObject *str_readline;
- PyObject *str_reset;
- PyObject *str_seek;
- PyObject *str_seekable;
- PyObject *str_tell;
- PyObject *str_truncate;
- PyObject *str_writable;
- PyObject *str_write;
} _PyIO_State;
#define IO_MOD_STATE(mod) ((_PyIO_State *)PyModule_GetState(mod))
#define IO_STATE IO_MOD_STATE(PyState_FindModule(&_PyIO_Module))
+
+extern PyObject *_PyIO_str_close;
+extern PyObject *_PyIO_str_closed;
+extern PyObject *_PyIO_str_decode;
+extern PyObject *_PyIO_str_encode;
+extern PyObject *_PyIO_str_fileno;
+extern PyObject *_PyIO_str_flush;
+extern PyObject *_PyIO_str_getstate;
+extern PyObject *_PyIO_str_isatty;
+extern PyObject *_PyIO_str_newlines;
+extern PyObject *_PyIO_str_read;
+extern PyObject *_PyIO_str_read1;
+extern PyObject *_PyIO_str_readable;
+extern PyObject *_PyIO_str_readinto;
+extern PyObject *_PyIO_str_readline;
+extern PyObject *_PyIO_str_reset;
+extern PyObject *_PyIO_str_seek;
+extern PyObject *_PyIO_str_seekable;
+extern PyObject *_PyIO_str_tell;
+extern PyObject *_PyIO_str_truncate;
+extern PyObject *_PyIO_str_writable;
+extern PyObject *_PyIO_str_write;
Modified: python/branches/io-c/Modules/_textio.c
==============================================================================
--- python/branches/io-c/Modules/_textio.c (original)
+++ python/branches/io-c/Modules/_textio.c Sun Feb 15 17:12:37 2009
@@ -226,7 +226,7 @@
}
/* decode input (with the eventual \r from a previous pass) */
- output = PyObject_CallMethodObjArgs(self->decoder, IO_STATE->str_decode,
+ output = PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_decode,
input, final ? Py_True : Py_False, NULL);
if (output == NULL)
return NULL;
@@ -422,7 +422,7 @@
IncrementalNewlineDecoder_getstate(PyNewLineDecoderObject *self, PyObject *args)
{
PyObject *state = PyObject_CallMethodObjArgs(self->decoder,
- IO_STATE->str_getstate, NULL);
+ _PyIO_str_getstate, NULL);
PyObject *buffer;
unsigned PY_LONG_LONG flag;
@@ -461,7 +461,7 @@
{
self->seennl = 0;
self->pendingcr = 0;
- return PyObject_CallMethodObjArgs(self->decoder, IO_STATE->str_reset, NULL);
+ return PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_reset, NULL);
}
static PyObject *
@@ -1046,7 +1046,7 @@
if (b == NULL)
return -1;
ret = PyObject_CallMethodObjArgs(self->buffer,
- IO_STATE->str_write, b, NULL);
+ _PyIO_str_write, b, NULL);
Py_DECREF(b);
if (ret == NULL)
return -1;
@@ -1062,7 +1062,6 @@
PyObject *ret;
PyObject *text; /* owned reference */
PyObject *b;
- _PyIO_State *state = IO_STATE;
Py_ssize_t textlen;
int haslf = 0;
int needflush = 0;
@@ -1104,7 +1103,7 @@
b = (*self->encodefunc)((PyObject *) self, text);
else
b = PyObject_CallMethodObjArgs(self->encoder,
- state->str_encode, text, NULL);
+ _PyIO_str_encode, text, NULL);
Py_DECREF(text);
if (b == NULL)
return NULL;
@@ -1129,7 +1128,7 @@
}
if (needflush) {
- ret = PyObject_CallMethodObjArgs(self->buffer, state->str_flush, NULL);
+ ret = PyObject_CallMethodObjArgs(self->buffer, _PyIO_str_flush, NULL);
if (ret == NULL)
return NULL;
Py_DECREF(ret);
@@ -1199,7 +1198,6 @@
PyObject *dec_flags = NULL;
PyObject *input_chunk = NULL;
PyObject *decoded_chars, *chunk_size;
- _PyIO_State *iostate = IO_STATE;
int eof;
/* The return value is True unless EOF was reached. The decoded string is
@@ -1219,7 +1217,7 @@
*/
PyObject *state = PyObject_CallMethodObjArgs(self->decoder,
- iostate->str_getstate, NULL);
+ _PyIO_str_getstate, NULL);
if (state == NULL)
return -1;
/* Given this, we know there was a valid snapshot point
@@ -1239,7 +1237,7 @@
if (chunk_size == NULL)
goto fail;
input_chunk = PyObject_CallMethodObjArgs(self->buffer,
- iostate->str_read1, chunk_size, NULL);
+ _PyIO_str_read1, chunk_size, NULL);
Py_DECREF(chunk_size);
if (input_chunk == NULL)
goto fail;
@@ -1253,7 +1251,7 @@
}
else {
decoded_chars = PyObject_CallMethodObjArgs(self->decoder,
- iostate->str_decode, input_chunk, eof ? Py_True : Py_False, NULL);
+ _PyIO_str_decode, input_chunk, eof ? Py_True : Py_False, NULL);
}
/* TODO sanity check: isinstance(decoded_chars, unicode) */
@@ -1308,7 +1306,7 @@
PyObject *decoded;
if (bytes == NULL)
goto fail;
- decoded = PyObject_CallMethodObjArgs(self->decoder, IO_STATE->str_decode,
+ decoded = PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_decode,
bytes, Py_True, NULL);
Py_DECREF(bytes);
if (decoded == NULL)
@@ -1748,7 +1746,7 @@
utf-16, that we are expecting a BOM).
*/
if (cookie->start_pos == 0 && cookie->dec_flags == 0)
- res = PyObject_CallMethodObjArgs(self->decoder, IO_STATE->str_reset, NULL);
+ res = PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_reset, NULL);
else
res = PyObject_CallMethod(self->decoder, "setstate",
"((yi))", "", cookie->dec_flags);
@@ -1766,7 +1764,6 @@
int whence = 0;
static PyObject *zero = NULL;
PyObject *res;
- _PyIO_State *state = IO_STATE;
int cmp;
CHECK_INITIALIZED(self);
@@ -1855,7 +1852,7 @@
goto fail;
}
- res = PyObject_CallMethodObjArgs((PyObject *)self, state->str_flush, NULL);
+ res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
if (res == NULL)
goto fail;
Py_DECREF(res);
@@ -1871,7 +1868,7 @@
if (posobj == NULL)
goto fail;
res = PyObject_CallMethodObjArgs(self->buffer,
- state->str_seek, posobj, NULL);
+ _PyIO_str_seek, posobj, NULL);
Py_DECREF(posobj);
if (res == NULL)
goto fail;
@@ -1939,7 +1936,6 @@
Py_ssize_t chars_to_skip, chars_decoded;
PyObject *saved_state = NULL;
char *input, *input_end;
- _PyIO_State *iostate = IO_STATE;
CHECK_INITIALIZED(self);
CHECK_CLOSED(self);
@@ -2000,7 +1996,7 @@
* forward until it gives us enough decoded characters.
*/
saved_state = PyObject_CallMethodObjArgs(self->decoder,
- iostate->str_getstate, NULL);
+ _PyIO_str_getstate, NULL);
if (saved_state == NULL)
goto fail;
@@ -2033,7 +2029,7 @@
cookie.bytes_to_feed += 1;
state = PyObject_CallMethodObjArgs(self->decoder,
- iostate->str_getstate, NULL);
+ _PyIO_str_getstate, NULL);
if (state == NULL)
goto fail;
if (!PyArg_Parse(state, "(y#i)", &dec_buffer, &dec_buffer_len, &dec_flags)) {
@@ -2105,27 +2101,26 @@
{
PyObject *pos = Py_None;
PyObject *res;
- _PyIO_State *state = IO_STATE;
CHECK_INITIALIZED(self)
if (!PyArg_ParseTuple(args, "|O:truncate", &pos)) {
return NULL;
}
- res = PyObject_CallMethodObjArgs((PyObject *) self, state->str_flush, NULL);
+ res = PyObject_CallMethodObjArgs((PyObject *) self, _PyIO_str_flush, NULL);
if (res == NULL)
return NULL;
Py_DECREF(res);
if (pos != Py_None) {
res = PyObject_CallMethodObjArgs((PyObject *) self,
- state->str_seek, pos, NULL);
+ _PyIO_str_seek, pos, NULL);
if (res == NULL)
return NULL;
Py_DECREF(res);
}
- return PyObject_CallMethodObjArgs(self->buffer, state->str_truncate, NULL);
+ return PyObject_CallMethodObjArgs(self->buffer, _PyIO_str_truncate, NULL);
}
/* Inquiries */
@@ -2206,7 +2201,7 @@
}
else {
line = PyObject_CallMethodObjArgs((PyObject *)self,
- IO_STATE->str_readline, NULL);
+ _PyIO_str_readline, NULL);
if (line && !PyUnicode_Check(line)) {
PyErr_Format(PyExc_IOError,
"readline() should have returned an str object, "
@@ -2241,7 +2236,7 @@
TextIOWrapper_closed_get(PyTextIOWrapperObject *self, void *context)
{
CHECK_INITIALIZED(self);
- return PyObject_GetAttr(self->buffer, IO_STATE->str_closed);
+ return PyObject_GetAttr(self->buffer, _PyIO_str_closed);
}
static PyObject *
@@ -2251,7 +2246,7 @@
CHECK_INITIALIZED(self);
if (self->decoder == NULL)
Py_RETURN_NONE;
- res = PyObject_GetAttr(self->decoder, IO_STATE->str_newlines);
+ res = PyObject_GetAttr(self->decoder, _PyIO_str_newlines);
if (res == NULL) {
PyErr_Clear();
Py_RETURN_NONE;
Modified: python/branches/io-c/Modules/io.c
==============================================================================
--- python/branches/io-c/Modules/io.c (original)
+++ python/branches/io-c/Modules/io.c Sun Feb 15 17:12:37 2009
@@ -21,6 +21,30 @@
#endif /* HAVE_SYS_STAT_H */
+/* Various interned strings */
+
+PyObject *_PyIO_str_close;
+PyObject *_PyIO_str_closed;
+PyObject *_PyIO_str_decode;
+PyObject *_PyIO_str_encode;
+PyObject *_PyIO_str_fileno;
+PyObject *_PyIO_str_flush;
+PyObject *_PyIO_str_getstate;
+PyObject *_PyIO_str_isatty;
+PyObject *_PyIO_str_newlines;
+PyObject *_PyIO_str_read;
+PyObject *_PyIO_str_read1;
+PyObject *_PyIO_str_readable;
+PyObject *_PyIO_str_readinto;
+PyObject *_PyIO_str_readline;
+PyObject *_PyIO_str_reset;
+PyObject *_PyIO_str_seek;
+PyObject *_PyIO_str_seekable;
+PyObject *_PyIO_str_tell;
+PyObject *_PyIO_str_truncate;
+PyObject *_PyIO_str_writable;
+PyObject *_PyIO_str_write;
+
PyDoc_STRVAR(module_doc,
"The io module provides the Python interfaces to stream handling. The\n"
@@ -549,30 +573,8 @@
}
static void
-iomodule_free(_PyIO_State *state) {
- iomodule_clear(state);
-
- Py_DECREF(state->str_close);
- Py_DECREF(state->str_closed);
- Py_DECREF(state->str_decode);
- Py_DECREF(state->str_encode);
- Py_DECREF(state->str_fileno);
- Py_DECREF(state->str_flush);
- Py_DECREF(state->str_getstate);
- Py_DECREF(state->str_isatty);
- Py_DECREF(state->str_newlines);
- Py_DECREF(state->str_read);
- Py_DECREF(state->str_read1);
- Py_DECREF(state->str_readable);
- Py_DECREF(state->str_readinto);
- Py_DECREF(state->str_readline);
- Py_DECREF(state->str_reset);
- Py_DECREF(state->str_seek);
- Py_DECREF(state->str_seekable);
- Py_DECREF(state->str_tell);
- Py_DECREF(state->str_truncate);
- Py_DECREF(state->str_writable);
- Py_DECREF(state->str_write);
+iomodule_free(_PyIO_State *mod) {
+ iomodule_clear(mod);
}
/*
@@ -710,47 +712,47 @@
PyModule_AddObject(m, "IncrementalNewlineDecoder", (PyObject *) &PyIncrementalNewlineDecoder_Type);
/* Interned strings */
- if (!(state->str_close = PyUnicode_InternFromString("close")))
+ if (!(_PyIO_str_close = PyUnicode_InternFromString("close")))
goto fail;
- if (!(state->str_closed = PyUnicode_InternFromString("closed")))
+ if (!(_PyIO_str_closed = PyUnicode_InternFromString("closed")))
goto fail;
- if (!(state->str_decode = PyUnicode_InternFromString("decode")))
+ if (!(_PyIO_str_decode = PyUnicode_InternFromString("decode")))
goto fail;
- if (!(state->str_encode = PyUnicode_InternFromString("encode")))
+ if (!(_PyIO_str_encode = PyUnicode_InternFromString("encode")))
goto fail;
- if (!(state->str_fileno = PyUnicode_InternFromString("fileno")))
+ if (!(_PyIO_str_fileno = PyUnicode_InternFromString("fileno")))
goto fail;
- if (!(state->str_flush = PyUnicode_InternFromString("flush")))
+ if (!(_PyIO_str_flush = PyUnicode_InternFromString("flush")))
goto fail;
- if (!(state->str_getstate = PyUnicode_InternFromString("getstate")))
+ if (!(_PyIO_str_getstate = PyUnicode_InternFromString("getstate")))
goto fail;
- if (!(state->str_isatty = PyUnicode_InternFromString("isatty")))
+ if (!(_PyIO_str_isatty = PyUnicode_InternFromString("isatty")))
goto fail;
- if (!(state->str_newlines = PyUnicode_InternFromString("newlines")))
+ if (!(_PyIO_str_newlines = PyUnicode_InternFromString("newlines")))
goto fail;
- if (!(state->str_read = PyUnicode_InternFromString("read")))
+ if (!(_PyIO_str_read = PyUnicode_InternFromString("read")))
goto fail;
- if (!(state->str_read1 = PyUnicode_InternFromString("read1")))
+ if (!(_PyIO_str_read1 = PyUnicode_InternFromString("read1")))
goto fail;
- if (!(state->str_readable = PyUnicode_InternFromString("readable")))
+ if (!(_PyIO_str_readable = PyUnicode_InternFromString("readable")))
goto fail;
- if (!(state->str_readinto = PyUnicode_InternFromString("readinto")))
+ if (!(_PyIO_str_readinto = PyUnicode_InternFromString("readinto")))
goto fail;
- if (!(state->str_readline = PyUnicode_InternFromString("readline")))
+ if (!(_PyIO_str_readline = PyUnicode_InternFromString("readline")))
goto fail;
- if (!(state->str_reset = PyUnicode_InternFromString("reset")))
+ if (!(_PyIO_str_reset = PyUnicode_InternFromString("reset")))
goto fail;
- if (!(state->str_seek = PyUnicode_InternFromString("seek")))
+ if (!(_PyIO_str_seek = PyUnicode_InternFromString("seek")))
goto fail;
- if (!(state->str_seekable = PyUnicode_InternFromString("seekable")))
+ if (!(_PyIO_str_seekable = PyUnicode_InternFromString("seekable")))
goto fail;
- if (!(state->str_tell = PyUnicode_InternFromString("tell")))
+ if (!(_PyIO_str_tell = PyUnicode_InternFromString("tell")))
goto fail;
- if (!(state->str_truncate = PyUnicode_InternFromString("truncate")))
+ if (!(_PyIO_str_truncate = PyUnicode_InternFromString("truncate")))
goto fail;
- if (!(state->str_write = PyUnicode_InternFromString("write")))
+ if (!(_PyIO_str_write = PyUnicode_InternFromString("write")))
goto fail;
- if (!(state->str_writable = PyUnicode_InternFromString("writable")))
+ if (!(_PyIO_str_writable = PyUnicode_InternFromString("writable")))
goto fail;
return m;
More information about the Python-checkins
mailing list