summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/_io/_iomodule.c95
-rw-r--r--Objects/exceptions.c44
2 files changed, 64 insertions, 75 deletions
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c
index f9bca1a..e046917 100644
--- a/Modules/_io/_iomodule.c
+++ b/Modules/_io/_iomodule.c
@@ -677,60 +677,47 @@ PyInit__io(void)
ADD_TYPE(&PyIncrementalNewlineDecoder_Type, "IncrementalNewlineDecoder");
/* Interned strings */
- if (!(_PyIO_str_close = PyUnicode_InternFromString("close")))
- goto fail;
- if (!(_PyIO_str_closed = PyUnicode_InternFromString("closed")))
- goto fail;
- if (!(_PyIO_str_decode = PyUnicode_InternFromString("decode")))
- goto fail;
- if (!(_PyIO_str_encode = PyUnicode_InternFromString("encode")))
- goto fail;
- if (!(_PyIO_str_fileno = PyUnicode_InternFromString("fileno")))
- goto fail;
- if (!(_PyIO_str_flush = PyUnicode_InternFromString("flush")))
- goto fail;
- if (!(_PyIO_str_getstate = PyUnicode_InternFromString("getstate")))
- goto fail;
- if (!(_PyIO_str_isatty = PyUnicode_InternFromString("isatty")))
- goto fail;
- if (!(_PyIO_str_newlines = PyUnicode_InternFromString("newlines")))
- goto fail;
- if (!(_PyIO_str_nl = PyUnicode_InternFromString("\n")))
- goto fail;
- if (!(_PyIO_str_read = PyUnicode_InternFromString("read")))
- goto fail;
- if (!(_PyIO_str_read1 = PyUnicode_InternFromString("read1")))
- goto fail;
- if (!(_PyIO_str_readable = PyUnicode_InternFromString("readable")))
- goto fail;
- if (!(_PyIO_str_readall = PyUnicode_InternFromString("readall")))
- goto fail;
- if (!(_PyIO_str_readinto = PyUnicode_InternFromString("readinto")))
- goto fail;
- if (!(_PyIO_str_readline = PyUnicode_InternFromString("readline")))
- goto fail;
- if (!(_PyIO_str_reset = PyUnicode_InternFromString("reset")))
- goto fail;
- if (!(_PyIO_str_seek = PyUnicode_InternFromString("seek")))
- goto fail;
- if (!(_PyIO_str_seekable = PyUnicode_InternFromString("seekable")))
- goto fail;
- if (!(_PyIO_str_setstate = PyUnicode_InternFromString("setstate")))
- goto fail;
- if (!(_PyIO_str_tell = PyUnicode_InternFromString("tell")))
- goto fail;
- if (!(_PyIO_str_truncate = PyUnicode_InternFromString("truncate")))
- goto fail;
- if (!(_PyIO_str_write = PyUnicode_InternFromString("write")))
- goto fail;
- if (!(_PyIO_str_writable = PyUnicode_InternFromString("writable")))
- goto fail;
-
- if (!(_PyIO_empty_str = PyUnicode_FromStringAndSize(NULL, 0)))
- goto fail;
- if (!(_PyIO_empty_bytes = PyBytes_FromStringAndSize(NULL, 0)))
- goto fail;
- if (!(_PyIO_zero = PyLong_FromLong(0L)))
+#define ADD_INTERNED(name) \
+ if (!_PyIO_str_ ## name && \
+ !(_PyIO_str_ ## name = PyUnicode_InternFromString(# name))) \
+ goto fail;
+
+ ADD_INTERNED(close)
+ ADD_INTERNED(closed)
+ ADD_INTERNED(decode)
+ ADD_INTERNED(encode)
+ ADD_INTERNED(fileno)
+ ADD_INTERNED(flush)
+ ADD_INTERNED(getstate)
+ ADD_INTERNED(isatty)
+ ADD_INTERNED(newlines)
+ ADD_INTERNED(read)
+ ADD_INTERNED(read1)
+ ADD_INTERNED(readable)
+ ADD_INTERNED(readall)
+ ADD_INTERNED(readinto)
+ ADD_INTERNED(readline)
+ ADD_INTERNED(reset)
+ ADD_INTERNED(seek)
+ ADD_INTERNED(seekable)
+ ADD_INTERNED(setstate)
+ ADD_INTERNED(tell)
+ ADD_INTERNED(truncate)
+ ADD_INTERNED(write)
+ ADD_INTERNED(writable)
+
+ if (!_PyIO_str_nl &&
+ !(_PyIO_str_nl = PyUnicode_InternFromString("\n")))
+ goto fail;
+
+ if (!_PyIO_empty_str &&
+ !(_PyIO_empty_str = PyUnicode_FromStringAndSize(NULL, 0)))
+ goto fail;
+ if (!_PyIO_empty_bytes &&
+ !(_PyIO_empty_bytes = PyBytes_FromStringAndSize(NULL, 0)))
+ goto fail;
+ if (!_PyIO_zero &&
+ !(_PyIO_zero = PyLong_FromLong(0L)))
goto fail;
state->initialized = 1;
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index a529a3c..2eb1aab 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -2437,27 +2437,29 @@ _PyExc_Init(void)
preallocate_memerrors();
- PyExc_RecursionErrorInst = BaseException_new(&_PyExc_RuntimeError, NULL, NULL);
- if (!PyExc_RecursionErrorInst)
- Py_FatalError("Cannot pre-allocate RuntimeError instance for "
- "recursion errors");
- else {
- PyBaseExceptionObject *err_inst =
- (PyBaseExceptionObject *)PyExc_RecursionErrorInst;
- PyObject *args_tuple;
- PyObject *exc_message;
- exc_message = PyUnicode_FromString("maximum recursion depth exceeded");
- if (!exc_message)
- Py_FatalError("cannot allocate argument for RuntimeError "
- "pre-allocation");
- args_tuple = PyTuple_Pack(1, exc_message);
- if (!args_tuple)
- Py_FatalError("cannot allocate tuple for RuntimeError "
- "pre-allocation");
- Py_DECREF(exc_message);
- if (BaseException_init(err_inst, args_tuple, NULL))
- Py_FatalError("init of pre-allocated RuntimeError failed");
- Py_DECREF(args_tuple);
+ if (!PyExc_RecursionErrorInst) {
+ PyExc_RecursionErrorInst = BaseException_new(&_PyExc_RuntimeError, NULL, NULL);
+ if (!PyExc_RecursionErrorInst)
+ Py_FatalError("Cannot pre-allocate RuntimeError instance for "
+ "recursion errors");
+ else {
+ PyBaseExceptionObject *err_inst =
+ (PyBaseExceptionObject *)PyExc_RecursionErrorInst;
+ PyObject *args_tuple;
+ PyObject *exc_message;
+ exc_message = PyUnicode_FromString("maximum recursion depth exceeded");
+ if (!exc_message)
+ Py_FatalError("cannot allocate argument for RuntimeError "
+ "pre-allocation");
+ args_tuple = PyTuple_Pack(1, exc_message);
+ if (!args_tuple)
+ Py_FatalError("cannot allocate tuple for RuntimeError "
+ "pre-allocation");
+ Py_DECREF(exc_message);
+ if (BaseException_init(err_inst, args_tuple, NULL))
+ Py_FatalError("init of pre-allocated RuntimeError failed");
+ Py_DECREF(args_tuple);
+ }
}
Py_DECREF(bltinmod);