[Python-checkins] CVS: python/dist/src/Objects descrobject.c,1.1.2.10,1.1.2.11

Guido van Rossum gvanrossum@users.sourceforge.net
2001年6月29日 07:31:13 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv11012
Modified Files:
 Tag: descr-branch
	descrobject.c 
Log Message:
descr_name(): return "?" for unnamed descriptors instead of NULL, so
it is safe to use this in "%s" formats.
descr_call(): always report the name of the descriptor in error
messages.
descr_get_name(): test for "?" returned from descr_name() instead of
NULL.
Index: descrobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/Attic/descrobject.c,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -C2 -r1.1.2.10 -r1.1.2.11
*** descrobject.c	2001年06月29日 14:19:30	1.1.2.10
--- descrobject.c	2001年06月29日 14:31:11	1.1.2.11
***************
*** 48,52 ****
 		return descr->d_union.d_wrapper.base->name;
 	default:
! 		return NULL;
 	}
 }
--- 48,52 ----
 		return descr->d_union.d_wrapper.base->name;
 	default:
! 		return "?";
 	}
 }
***************
*** 203,220 ****
 	argc = PyTuple_GET_SIZE(args);
 	if (argc < 1) {
! 		PyErr_SetString(PyExc_TypeError,
! 				"descriptor call needs a self argument");
 		return NULL;
 	}
 	self = PyTuple_GET_ITEM(args, 0);
 	if (!PyObject_IsInstance(self, (PyObject *)(descr->d_type))) {
- 		char *name = descr_name(descr);
- 		if (name == NULL)
- 			name = "?";
 		PyErr_Format(PyExc_TypeError,
 			 "descriptor '%.100s' "
! 			 "requires a '%.100s', "
! 			 "received a '%.100s'",
! 			 name,
 			 descr->d_type->tp_name,
 			 self->ob_type->tp_name);
--- 203,218 ----
 	argc = PyTuple_GET_SIZE(args);
 	if (argc < 1) {
! 		PyErr_Format(PyExc_TypeError,
! 			 "descriptor '%.100s' needs an argument",
! 			 descr_name(descr));
 		return NULL;
 	}
 	self = PyTuple_GET_ITEM(args, 0);
 	if (!PyObject_IsInstance(self, (PyObject *)(descr->d_type))) {
 		PyErr_Format(PyExc_TypeError,
 			 "descriptor '%.100s' "
! 			 "requires '%.100s', "
! 			 "received '%.100s'",
! 			 descr_name(descr),
 			 descr->d_type->tp_name,
 			 self->ob_type->tp_name);
***************
*** 245,251 ****
 		assert(PyDict_Check(kwds));
 		if (PyDict_Size(kwds) > 0) {
! 			PyErr_SetString(PyExc_TypeError,
! 					"this descriptor object can't called "
! 					"called with keyword arguments");
 			return NULL;
 		}
--- 243,250 ----
 		assert(PyDict_Check(kwds));
 		if (PyDict_Size(kwds) > 0) {
! 			PyErr_Format(PyExc_TypeError,
! 				 "descriptor '%.100s' can't called "
! 					"called with keyword arguments",
! 				 descr_name(descr));
 			return NULL;
 		}
***************
*** 261,266 ****
 		return Py_None;
 	}
! 	PyErr_SetString(PyExc_TypeError,
! 			"too many arguments to descriptor call");
 	return NULL;
 }
--- 260,266 ----
 		return Py_None;
 	}
! 	PyErr_Format(PyExc_TypeError,
! 		 "too many arguments to call descriptor '%.100s'",
! 		 descr_name(descr));
 	return NULL;
 }
***************
*** 303,307 ****
 	char *s = descr_name(descr);
 
! 	if (s != NULL)
 		return PyString_FromString(s);
 	PyErr_SetString(PyExc_AttributeError, "unnamed descriptor");
--- 303,307 ----
 	char *s = descr_name(descr);
 
! 	if (*s != '?')
 		return PyString_FromString(s);
 	PyErr_SetString(PyExc_AttributeError, "unnamed descriptor");

AltStyle によって変換されたページ (->オリジナル) /