diff options
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/bltinmodule.c | 191 | 
1 files changed, 1 insertions, 190 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index ed4c05b3a9..f4a7802671 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -2356,178 +2356,13 @@ static PyMethodDef builtin_methods[] = {  	{NULL,		NULL},  }; -/* Predefined exceptions */ - -PyObject *PyExc_Exception; -PyObject *PyExc_StandardError; -PyObject *PyExc_ArithmeticError; -PyObject *PyExc_LookupError; - -PyObject *PyExc_AssertionError; -PyObject *PyExc_AttributeError; -PyObject *PyExc_EOFError; -PyObject *PyExc_FloatingPointError; -PyObject *PyExc_EnvironmentError; -PyObject *PyExc_IOError; -PyObject *PyExc_OSError; -PyObject *PyExc_ImportError; -PyObject *PyExc_IndexError; -PyObject *PyExc_KeyError; -PyObject *PyExc_KeyboardInterrupt; -PyObject *PyExc_MemoryError; -PyObject *PyExc_NameError; -PyObject *PyExc_OverflowError; -PyObject *PyExc_RuntimeError; -PyObject *PyExc_NotImplementedError; -PyObject *PyExc_SyntaxError; -PyObject *PyExc_SystemError; -PyObject *PyExc_SystemExit; -PyObject *PyExc_UnboundLocalError; -PyObject *PyExc_UnicodeError; -PyObject *PyExc_TypeError; -PyObject *PyExc_ValueError; -PyObject *PyExc_ZeroDivisionError; -#ifdef MS_WINDOWS -PyObject *PyExc_WindowsError; -#endif - -PyObject *PyExc_MemoryErrorInst; - -static struct -{ -	char* name; -	PyObject** exc; -} -bltin_exc[] = { -	{"Exception",          &PyExc_Exception}, -	{"StandardError",      &PyExc_StandardError}, -	{"ArithmeticError",    &PyExc_ArithmeticError}, -	{"LookupError",        &PyExc_LookupError}, -	{"AssertionError",     &PyExc_AssertionError}, -	{"AttributeError",     &PyExc_AttributeError}, -	{"EOFError",           &PyExc_EOFError}, -	{"FloatingPointError", &PyExc_FloatingPointError}, -	{"EnvironmentError",   &PyExc_EnvironmentError}, -	{"IOError",            &PyExc_IOError}, -	{"OSError",            &PyExc_OSError}, -	{"ImportError",        &PyExc_ImportError}, -	{"IndexError",         &PyExc_IndexError}, -	{"KeyError",           &PyExc_KeyError}, -	{"KeyboardInterrupt",  &PyExc_KeyboardInterrupt}, -	{"MemoryError",        &PyExc_MemoryError}, -	{"NameError",          &PyExc_NameError}, -	{"OverflowError",      &PyExc_OverflowError}, -	{"RuntimeError",       &PyExc_RuntimeError}, - 	{"NotImplementedError",&PyExc_NotImplementedError}, -	{"SyntaxError",        &PyExc_SyntaxError}, -	{"SystemError",        &PyExc_SystemError}, -	{"SystemExit",         &PyExc_SystemExit}, -	{"UnboundLocalError",  &PyExc_UnboundLocalError}, -	{"UnicodeError",       &PyExc_UnicodeError}, -	{"TypeError",          &PyExc_TypeError}, -	{"ValueError",         &PyExc_ValueError}, -#ifdef MS_WINDOWS -	{"WindowsError",       &PyExc_WindowsError}, -#endif -	{"ZeroDivisionError",  &PyExc_ZeroDivisionError}, -	{NULL, NULL} -}; - - -/* Import exceptions module to extract class exceptions.  On success, - * return 1.  On failure return 0 which signals _PyBuiltin_Init_2 to - * issue a fatal error. - */ -static int -init_class_exc(dict) -	PyObject *dict; -{ -	int i; -	PyObject *m = PyImport_ImportModule("exceptions"); -	PyObject *args = NULL; -	PyObject *d = NULL; - -	/* make sure we got the module and its dictionary */ -	if (m == NULL || -	    (d = PyModule_GetDict(m)) == NULL) -	{ -		PySys_WriteStderr("'import exceptions' failed\n"); -		goto finally; -	} -	for (i = 0; bltin_exc[i].name; i++) { -		/* dig the exception out of the module */ -		PyObject *exc = PyDict_GetItemString(d, bltin_exc[i].name); -		if (!exc) { -			PySys_WriteStderr( -		"Built-in exception class not found: %s.  Library mismatch?\n", -		bltin_exc[i].name); -			goto finally; -		} -		/* free the old-style exception string object */ -		Py_XDECREF(*bltin_exc[i].exc); - -		/* squirrel away a pointer to the exception */ -		Py_INCREF(exc); -		*bltin_exc[i].exc = exc; - -		/* and insert the name in the __builtin__ module */ -		if (PyDict_SetItemString(dict, bltin_exc[i].name, exc)) { -			PySys_WriteStderr( -			      "Cannot insert exception into __builtin__: %s\n", -			      bltin_exc[i].name); -			goto finally; -		} -	} - -	/* we need one pre-allocated instance */ -	args = Py_BuildValue("()"); -	if (!args || -	    !(PyExc_MemoryErrorInst = -	      PyEval_CallObject(PyExc_MemoryError, args))) -	{ -	       PySys_WriteStderr("Cannot pre-allocate MemoryError instance\n"); -	       goto finally; -	} -	Py_DECREF(args); - -	/* we're done with the exceptions module */ -	Py_DECREF(m); -	return 1; - -  finally: -	Py_XDECREF(m); -	Py_XDECREF(args); -	PyErr_Clear(); -	return 0; -} - - -static void -fini_instances() -{ -	Py_XDECREF(PyExc_MemoryErrorInst); -	PyExc_MemoryErrorInst = NULL; -} - - -static void -finierrors() -{ -	int i; -	for (i = 0; bltin_exc[i].name; i++) { -		PyObject *exc = *bltin_exc[i].exc; -		Py_XDECREF(exc); -		*bltin_exc[i].exc = NULL; -	} -} -  static char builtin_doc[] =  "Built-in functions, exceptions, and other objects.\n\  \n\  Noteworthy: None is the `nil' object; Ellipsis represents `...' in slices.";  PyObject * -_PyBuiltin_Init_1() +_PyBuiltin_Init()  {  	PyObject *mod, *dict;  	mod = Py_InitModule4("__builtin__", builtin_methods, @@ -2547,30 +2382,6 @@ _PyBuiltin_Init_1()  	return mod;  } -void -_PyBuiltin_Init_2(dict) -	PyObject *dict; -{ -	if (!init_class_exc(dict)) -		/* class based exceptions could not be initialized. */ -		Py_FatalError("Standard exceptions could not be initialized."); -} - - -void -_PyBuiltin_Fini_1() -{ -	fini_instances(); -} - - -void -_PyBuiltin_Fini_2() -{ -	finierrors(); -} - -  /* Helper for filter(): filter a tuple through a function */  static PyObject *  | 
