mirror of
https://github.com/python/cpython.git
synced 2025-11-02 19:12:55 +00:00
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).
This commit is contained in:
parent
0ceb9b1603
commit
6a627250d2
2 changed files with 48 additions and 6 deletions
34
Misc/NEWS
34
Misc/NEWS
|
|
@ -4,6 +4,40 @@ Python News
|
||||||
|
|
||||||
(editors: check NEWS.help for information about editing NEWS using ReST.)
|
(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?
|
What's New in Python 2.3 release candidate 1?
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2904,11 +2904,19 @@ initparser(void)
|
||||||
if (parser_error == 0)
|
if (parser_error == 0)
|
||||||
parser_error = PyErr_NewException("parser.ParserError", NULL, NULL);
|
parser_error = PyErr_NewException("parser.ParserError", NULL, NULL);
|
||||||
|
|
||||||
if ((parser_error == 0)
|
if (parser_error == 0)
|
||||||
|| (PyModule_AddObject(module, "ParserError", parser_error) != 0)) {
|
|
||||||
/* caller will check PyErr_Occurred() */
|
/* caller will check PyErr_Occurred() */
|
||||||
return;
|
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);
|
Py_INCREF(&PyST_Type);
|
||||||
PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type);
|
PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type);
|
||||||
Py_INCREF(&PyST_Type);
|
Py_INCREF(&PyST_Type);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue