summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2003-07-21 14:25:23 (GMT)
committerTim Peters <tim.peters@gmail.com>2003-07-21 14:25:23 (GMT)
commit6a627250d2fe24ea79c5a09df58d74913586472e (patch)
tree4d08e44058834db060ed56edf9d84877269f77c7
parent0ceb9b160335108a0235b68570b9d64df972070f (diff)
downloadcpython-6a627250d2fe24ea79c5a09df58d74913586472e.zip
cpython-6a627250d2fe24ea79c5a09df58d74913586472e.tar.gz
cpython-6a627250d2fe24ea79c5a09df58d74913586472e.tar.bz2
Merge 23c1-branch back into the head. Barry will send email about the
New Plan (releases to be made off the head, ongoing random 2.4 stuff to be done on a short-lived branch, provided anyone is motivated enough to create one).
-rw-r--r--Misc/NEWS38
-rw-r--r--Modules/parsermodule.c16
2 files changed, 48 insertions, 6 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index aedd5b6..ae3c4ef 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,6 +4,40 @@ Python News
(editors: check NEWS.help for information about editing NEWS using ReST.)
+What's New in Python 2.3 release candidate 2?
+=============================================
+
+*Release date: DD-MMM-YYYY*
+
+Core and builtins
+-----------------
+
+Extension modules
+-----------------
+
+- A longstanding bug in the parser module's initialization could cause
+ fatal internal refcount confusion when the module got initialized more
+ than once. This has been fixed.
+
+Library
+-------
+
+Tools/Demos
+-----------
+
+Build
+-----
+
+C API
+-----
+
+Windows
+-------
+
+Mac
+---
+
+
What's New in Python 2.3 release candidate 1?
=============================================
@@ -26,7 +60,7 @@ Core and builtins
- A warning about assignments to module attributes that shadow
builtins, present in earlier releases of 2.3, has been removed.
-
+
- It is not possible to create subclasses of builtin types like str
and tuple that define an itemsize. Earlier releases of Python 2.3
allowed this by mistake, leading to crashes and other problems.
@@ -58,7 +92,7 @@ Extension modules
- The cPickle Pickler garbage collection support was fixed to traverse
the find_class attribute, if present.
-- There are several fixes for the bsddb3 wrapper module.
+- There are several fixes for the bsddb3 wrapper module.
bsddb3 no longer crashes if an environment is closed before a cursor
(SF bug 763298).
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 91f15e3..4a795ed 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -106,7 +106,7 @@ node2tuple(node *n, /* node to convert */
}
(void) addelem(v, i+1, w);
}
-
+
if (TYPE(n) == encoding_decl)
(void) addelem(v, i+1, PyString_FromString(STR(n)));
return (v);
@@ -2904,11 +2904,19 @@ initparser(void)
if (parser_error == 0)
parser_error = PyErr_NewException("parser.ParserError", NULL, NULL);
- if ((parser_error == 0)
- || (PyModule_AddObject(module, "ParserError", parser_error) != 0)) {
+ if (parser_error == 0)
/* caller will check PyErr_Occurred() */
return;
- }
+ /* CAUTION: The code next used to skip bumping the refcount on
+ * parser_error. That's a disaster if initparser() gets called more
+ * than once. By incref'ing, we ensure that each module dict that
+ * gets created owns its reference to the shared parser_error object,
+ * and the file static parser_error vrbl owns a reference too.
+ */
+ Py_INCREF(parser_error);
+ if (PyModule_AddObject(module, "ParserError", parser_error) != 0)
+ return;
+
Py_INCREF(&PyST_Type);
PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type);
Py_INCREF(&PyST_Type);