]> granicus.if.org Git - python/commitdiff
weakref.ReferenceError becomes a built-in exception now that weak ref objects
authorFred Drake <fdrake@acm.org>
Fri, 5 Oct 2001 21:50:08 +0000 (21:50 +0000)
committerFred Drake <fdrake@acm.org>
Fri, 5 Oct 2001 21:50:08 +0000 (21:50 +0000)
are moving into the core; with these changes, it will be possible for the
exception to be raised without the weakref module ever being imported.

Include/pyerrors.h
Python/exceptions.c

index d7b76390254b108da1e64de51fe318175c224a3e..c3960b7e593154bec06c7c4ef2c68273eb09a0c1 100644 (file)
@@ -48,6 +48,7 @@ extern DL_IMPORT(PyObject *) PyExc_NotImplementedError;
 extern DL_IMPORT(PyObject *) PyExc_SyntaxError;
 extern DL_IMPORT(PyObject *) PyExc_IndentationError;
 extern DL_IMPORT(PyObject *) PyExc_TabError;
+extern DL_IMPORT(PyObject *) PyExc_ReferenceError;
 extern DL_IMPORT(PyObject *) PyExc_SystemError;
 extern DL_IMPORT(PyObject *) PyExc_SystemExit;
 extern DL_IMPORT(PyObject *) PyExc_TypeError;
index ef9d01c0a58c06ea7b4dcd6cb749a1020d81d560..4d17529720e33583f60948e20c2ed4b4e7284eff 100644 (file)
@@ -97,6 +97,7 @@ Exception\n\
  |    |    |\n\
  |    |    +-- UnicodeError\n\
  |    |\n\
+ |    +-- ReferenceError\n\
  |    +-- SystemError\n\
  |    +-- MemoryError\n\
  |\n\
@@ -888,6 +889,9 @@ SystemError__doc__[] = "Internal error in the Python interpreter.\n\
 Please report this to the Python maintainer, along with the traceback,\n\
 the Python version, and the hardware/OS platform and version.";
 
+static char
+ReferenceError__doc__[] = "Weak ref proxy used after referent went away.";
+
 static char
 MemoryError__doc__[] = "Out of memory.";
 
@@ -956,6 +960,7 @@ PyObject *PyExc_NotImplementedError;
 PyObject *PyExc_SyntaxError;
 PyObject *PyExc_IndentationError;
 PyObject *PyExc_TabError;
+PyObject *PyExc_ReferenceError;
 PyObject *PyExc_SystemError;
 PyObject *PyExc_SystemExit;
 PyObject *PyExc_UnboundLocalError;
@@ -1044,6 +1049,7 @@ static struct {
   FloatingPointError__doc__},
  {"ValueError",   &PyExc_ValueError,  0, ValueError__doc__},
  {"UnicodeError", &PyExc_UnicodeError, &PyExc_ValueError, UnicodeError__doc__},
+ {"ReferenceError",  &PyExc_ReferenceError, 0, ReferenceError__doc__},
  {"SystemError",  &PyExc_SystemError, 0, SystemError__doc__},
  {"MemoryError",  &PyExc_MemoryError, 0, MemoryError__doc__},
  /* Warning categories */