summaryrefslogtreecommitdiffstats
path: root/Python/bltinmodule.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-11-30 10:18:26 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-11-30 10:18:26 (GMT)
commitc8967002353864e012567125d7824abaeeb31dd3 (patch)
treebfeda9fe43a3dd0025ebf69708cb6442c61d0e4f /Python/bltinmodule.c
parenta22e8bdfd92cd4f1bc3d60e91df6410c4efde6a0 (diff)
downloadcpython-c8967002353864e012567125d7824abaeeb31dd3.zip
cpython-c8967002353864e012567125d7824abaeeb31dd3.tar.gz
cpython-c8967002353864e012567125d7824abaeeb31dd3.tar.bz2
Partial fix for bug #1306
Multiple reinitializations of Python 3.0 failed on a system without a hardcoded default fs encoding. The patch makes sure that the default fs encoding is freed and reset to NULL on e.g. Linux. I've also taken the liberty to increase the debugging in Objects/object.c:_Py_ForgetReference(). The method is used to validate the reference chain. Reinitialization still fails in the 3rd round of my test suite: * ob object : <refcnt 0 at 0x821c840> type : str refcount: 0 address : 0x821c840 * op->_ob_prev->_ob_next object : <refcnt 0 at 0x821c840> type : str refcount: 0 address : 0x821c840 * op->_ob_next->_ob_prev object : bytearray(b'') type : bytearray refcount: 1 address : 0x826b838 Fatal Python error: UNREF invalid object
Diffstat (limited to 'Python/bltinmodule.c')
-rw-r--r--Python/bltinmodule.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index b109ba7..fb7e223 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -16,10 +16,13 @@
*/
#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
const char *Py_FileSystemDefaultEncoding = "mbcs";
+const int Py_HasFileSystemDefaultEncoding = 1;
#elif defined(__APPLE__)
const char *Py_FileSystemDefaultEncoding = "utf-8";
+const int Py_HasFileSystemDefaultEncoding = 1;
#else
const char *Py_FileSystemDefaultEncoding = NULL; /* use default */
+const int Py_HasFileSystemDefaultEncoding = 0;
#endif
static PyObject *