[Python-checkins] CVS: python/dist/src/Objects bufferobject.c,2.14,2.15 cellobject.c,1.3,1.4 classobject.c,2.140,2.141 descrobject.c,2.7,2.8 fileobject.c,2.118,2.119 funcobject.c,2.40,2.41 methodobject.c,2.37,2.38 moduleobject.c,2.35,2.36 object.c,2.139,2.140 rangeobject.c,2.28,2.29 typeobject.c,2.45,2.46
Barry Warsaw
bwarsaw@users.sourceforge.net
2001年8月24日 11:34:29 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv14195/Objects
Modified Files:
bufferobject.c cellobject.c classobject.c descrobject.c
fileobject.c funcobject.c methodobject.c moduleobject.c
object.c rangeobject.c typeobject.c
Log Message:
repr's converted to using PyString_FromFormat() instead of sprintf'ing
into a hardcoded char* buffer.
Closes patch #454743.
Index: bufferobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/bufferobject.c,v
retrieving revision 2.14
retrieving revision 2.15
diff -C2 -d -r2.14 -r2.15
*** bufferobject.c 2001年08月02日 04:15:00 2.14
--- bufferobject.c 2001年08月24日 18:34:26 2.15
***************
*** 185,202 ****
buffer_repr(PyBufferObject *self)
{
- char buf[300];
char *status = self->b_readonly ? "read-only" : "read-write";
if ( self->b_base == NULL )
! {
! sprintf(buf, "<%s buffer ptr %p, size %d at %p>",
! status,
! self->b_ptr,
! self->b_size,
! self);
! }
else
! {
! sprintf(buf, "<%s buffer for %p, ptr %p, size %d at %p>",
status,
self->b_base,
--- 185,199 ----
buffer_repr(PyBufferObject *self)
{
char *status = self->b_readonly ? "read-only" : "read-write";
if ( self->b_base == NULL )
! return PyString_FromFormat("<%s buffer ptr %p, size %d at %p>",
! status,
! self->b_ptr,
! self->b_size,
! self);
else
! return PyString_FromFormat(
! "<%s buffer for %p, ptr %p, size %d at %p>",
status,
self->b_base,
***************
*** 204,210 ****
self->b_size,
self);
- }
-
- return PyString_FromString(buf);
}
--- 201,204 ----
Index: cellobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/cellobject.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** cellobject.c 2001年08月02日 04:15:00 1.3
--- cellobject.c 2001年08月24日 18:34:26 1.4
***************
*** 63,74 ****
cell_repr(PyCellObject *op)
{
- char buf[256];
-
if (op->ob_ref == NULL)
! sprintf(buf, "<cell at %p: empty>", op);
! else
! sprintf(buf, "<cell at %p: %.80s object at %p>",
! op, op->ob_ref->ob_type->tp_name, op->ob_ref);
! return PyString_FromString(buf);
}
--- 63,72 ----
cell_repr(PyCellObject *op)
{
if (op->ob_ref == NULL)
! return PyString_FromFormat("<cell at %p: empty>", op);
!
! return PyString_FromFormat("<cell at %p: %.80s object at %p>",
! op, op->ob_ref->ob_type->tp_name,
! op->ob_ref);
}
Index: classobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/classobject.c,v
retrieving revision 2.140
retrieving revision 2.141
diff -C2 -d -r2.140 -r2.141
*** classobject.c 2001年08月17日 13:59:27 2.140
--- classobject.c 2001年08月24日 18:34:26 2.141
***************
*** 314,318 ****
{
PyObject *mod = PyDict_GetItemString(op->cl_dict, "__module__");
- char buf[140];
char *name;
if (op->cl_name == NULL || !PyString_Check(op->cl_name))
--- 314,317 ----
***************
*** 321,330 ****
name = PyString_AsString(op->cl_name);
if (mod == NULL || !PyString_Check(mod))
! sprintf(buf, "<class ?.%.100s at %p>", name, op);
else
! sprintf(buf, "<class %.50s.%.50s at %p>",
! PyString_AsString(mod),
! name, op);
! return PyString_FromString(buf);
}
--- 320,328 ----
name = PyString_AsString(op->cl_name);
if (mod == NULL || !PyString_Check(mod))
! return PyString_FromFormat("<class ?.s at %p>", name, op);
else
! return PyString_FromFormat("<class %s.%s at %p>",
! PyString_AsString(mod),
! name, op);
}
***************
*** 777,781 ****
func = instance_getattr(inst, reprstr);
if (func == NULL) {
- char buf[140];
PyObject *classname = inst->in_class->cl_name;
PyObject *mod = PyDict_GetItemString(
--- 775,778 ----
***************
*** 788,798 ****
PyErr_Clear();
if (mod == NULL || !PyString_Check(mod))
! sprintf(buf, "<?.%.100s instance at %p>",
! cname, inst);
else
! sprintf(buf, "<%.50s.%.50s instance at %p>",
! PyString_AsString(mod),
! cname, inst);
! return PyString_FromString(buf);
}
res = PyEval_CallObject(func, (PyObject *)NULL);
--- 785,794 ----
PyErr_Clear();
if (mod == NULL || !PyString_Check(mod))
! return PyString_FromFormat("<?.%s instance at %p>",
! cname, inst);
else
! return PyString_FromFormat("<%s.%s instance at %p>",
! PyString_AsString(mod),
! cname, inst);
}
res = PyEval_CallObject(func, (PyObject *)NULL);
***************
*** 2043,2047 ****
instancemethod_repr(PyMethodObject *a)
{
- char buffer[240];
PyObject *self = a->im_self;
PyObject *func = a->im_func;
--- 2039,2042 ----
***************
*** 2073,2078 ****
}
if (self == NULL)
! sprintf(buffer, "<unbound method %.100s.%.100s>",
! sklassname, sfuncname);
else {
/* XXX Shouldn't use repr() here! */
--- 2068,2073 ----
}
if (self == NULL)
! result = PyString_FromFormat("<unbound method %s.%s>",
! sklassname, sfuncname);
else {
/* XXX Shouldn't use repr() here! */
***************
*** 2084,2092 ****
goto fail;
}
! sprintf(buffer, "<bound method %.60s.%.60s of %.60s>",
! sklassname, sfuncname, PyString_AS_STRING(selfrepr));
Py_DECREF(selfrepr);
}
- result = PyString_FromString(buffer);
fail:
Py_XDECREF(funcname);
--- 2079,2087 ----
goto fail;
}
! result = PyString_FromFormat("<bound method %s.%s of %s>",
! sklassname, sfuncname,
! PyString_AS_STRING(selfrepr));
Py_DECREF(selfrepr);
}
fail:
Py_XDECREF(funcname);
Index: descrobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/descrobject.c,v
retrieving revision 2.7
retrieving revision 2.8
diff -C2 -d -r2.7 -r2.8
*** descrobject.c 2001年08月24日 15:23:20 2.7
--- descrobject.c 2001年08月24日 18:34:26 2.8
***************
*** 56,63 ****
descr_repr(PyDescrObject *descr, char *format)
{
! char buffer[500];
!
! sprintf(buffer, format, descr_name(descr), descr->d_type->tp_name);
! return PyString_FromString(buffer);
}
--- 56,61 ----
descr_repr(PyDescrObject *descr, char *format)
{
! return PyString_FromFormat(format, descr_name(descr),
! descr->d_type->tp_name);
}
***************
*** 66,70 ****
{
return descr_repr((PyDescrObject *)descr,
! "<method '%.300s' of '%.100s' objects>");
}
--- 64,68 ----
{
return descr_repr((PyDescrObject *)descr,
! "<method '%s' of '%s' objects>");
}
***************
*** 73,77 ****
{
return descr_repr((PyDescrObject *)descr,
! "<member '%.300s' of '%.100s' objects>");
}
--- 71,75 ----
{
return descr_repr((PyDescrObject *)descr,
! "<member '%s' of '%s' objects>");
}
***************
*** 80,84 ****
{
return descr_repr((PyDescrObject *)descr,
! "<attribute '%.300s' of '%.100s' objects>");
}
--- 78,82 ----
{
return descr_repr((PyDescrObject *)descr,
! "<attribute '%s' of '%s' objects>");
}
***************
*** 87,91 ****
{
return descr_repr((PyDescrObject *)descr,
! "<slot wrapper '%.300s' of '%.100s' objects>");
}
--- 85,89 ----
{
return descr_repr((PyDescrObject *)descr,
! "<slot wrapper '%s' of '%s' objects>");
}
***************
*** 101,106 ****
if (!PyObject_IsInstance(obj, (PyObject *)(descr->d_type))) {
PyErr_Format(PyExc_TypeError,
! "descriptor '%.200s' for '%.100s' objects "
! "doesn't apply to '%.100s' object",
descr_name((PyDescrObject *)descr),
descr->d_type->tp_name,
--- 99,104 ----
if (!PyObject_IsInstance(obj, (PyObject *)(descr->d_type))) {
PyErr_Format(PyExc_TypeError,
! "descriptor '%s' for '%s' objects "
! "doesn't apply to '%s' object",
descr_name((PyDescrObject *)descr),
descr->d_type->tp_name,
Index: fileobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/fileobject.c,v
retrieving revision 2.118
retrieving revision 2.119
diff -C2 -d -r2.118 -r2.119
*** fileobject.c 2001年08月16日 13:15:00 2.118
--- fileobject.c 2001年08月24日 18:34:26 2.119
***************
*** 180,190 ****
file_repr(PyFileObject *f)
{
! char buf[300];
! sprintf(buf, "<%s file '%.256s', mode '%.10s' at %p>",
! f->f_fp == NULL ? "closed" : "open",
! PyString_AsString(f->f_name),
! PyString_AsString(f->f_mode),
! f);
! return PyString_FromString(buf);
}
--- 180,188 ----
file_repr(PyFileObject *f)
{
! return PyString_FromFormat("<%s file '%s', mode '%s' at %p>",
! f->f_fp == NULL ? "closed" : "open",
! PyString_AsString(f->f_name),
! PyString_AsString(f->f_mode),
! f);
}
Index: funcobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/funcobject.c,v
retrieving revision 2.40
retrieving revision 2.41
diff -C2 -d -r2.40 -r2.41
*** funcobject.c 2001年08月14日 18:23:58 2.40
--- funcobject.c 2001年08月24日 18:34:26 2.41
***************
*** 240,251 ****
func_repr(PyFunctionObject *op)
{
- char buf[140];
if (op->func_name == Py_None)
! sprintf(buf, "<anonymous function at %p>", op);
! else
! sprintf(buf, "<function %.100s at %p>",
! PyString_AsString(op->func_name),
! op);
! return PyString_FromString(buf);
}
--- 240,248 ----
func_repr(PyFunctionObject *op)
{
if (op->func_name == Py_None)
! return PyString_FromFormat("<anonymous function at %p>", op);
! return PyString_FromFormat("<function %s at %p>",
! PyString_AsString(op->func_name),
! op);
}
Index: methodobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/methodobject.c,v
retrieving revision 2.37
retrieving revision 2.38
diff -C2 -d -r2.37 -r2.38
*** methodobject.c 2001年08月16日 13:15:00 2.37
--- methodobject.c 2001年08月24日 18:34:26 2.38
***************
*** 173,185 ****
meth_repr(PyCFunctionObject *m)
{
- char buf[200];
if (m->m_self == NULL)
! sprintf(buf, "<built-in function %.80s>", m->m_ml->ml_name);
! else
! sprintf(buf,
! "<built-in method %.80s of %.80s object at %p>",
! m->m_ml->ml_name, m->m_self->ob_type->tp_name,
! m->m_self);
! return PyString_FromString(buf);
}
--- 173,183 ----
meth_repr(PyCFunctionObject *m)
{
if (m->m_self == NULL)
! return PyString_FromFormat("<built-in function %s>",
! m->m_ml->ml_name);
! return PyString_FromFormat("<built-in method %s of %s object at %p>",
! m->m_ml->ml_name,
! m->m_self->ob_type->tp_name,
! m->m_self);
}
Index: moduleobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/moduleobject.c,v
retrieving revision 2.35
retrieving revision 2.36
diff -C2 -d -r2.35 -r2.36
*** moduleobject.c 2001年08月16日 20:39:24 2.35
--- moduleobject.c 2001年08月24日 18:34:26 2.36
***************
*** 158,168 ****
module_repr(PyModuleObject *m)
{
- static int template1len = sizeof("<module '' (built-in)>") + 1;
- static int template2len = sizeof("<module '' from ''>") + 1;
-
- char *buf;
char *name;
char *filename;
- PyObject *rtn;
name = PyModule_GetName((PyObject *)m);
--- 158,163 ----
***************
*** 174,190 ****
if (filename == NULL) {
PyErr_Clear();
! buf = PyObject_MALLOC(
! sizeof(char) * (strlen(name) + template1len));
! sprintf(buf, "<module '%s' (built-in)>", name);
! }
! else {
! buf = PyObject_MALLOC(
! sizeof(char) * (strlen(name) + strlen(filename) +
! template2len));
! sprintf(buf, "<module '%s' from '%s'>", name, filename);
}
! rtn = PyString_FromString(buf);
! PyObject_FREE(buf);
! return rtn;
}
--- 169,175 ----
if (filename == NULL) {
PyErr_Clear();
! return PyString_FromFormat("<module '%s' (built-in)>", name);
}
! return PyString_FromFormat("<module '%s' from '%s'>", name, filename);
}
Index: object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.139
retrieving revision 2.140
diff -C2 -d -r2.139 -r2.140
*** object.c 2001年08月17日 18:39:25 2.139
--- object.c 2001年08月24日 18:34:26 2.140
***************
*** 223,226 ****
--- 223,227 ----
#endif /* WITH_CYCLE_GC */
+
PyObject *
PyObject_Repr(PyObject *v)
***************
*** 236,245 ****
if (v == NULL)
return PyString_FromString("<NULL>");
! else if (v->ob_type->tp_repr == NULL) {
! char buf[120];
! sprintf(buf, "<%.80s object at %p>",
! v->ob_type->tp_name, v);
! return PyString_FromString(buf);
! }
else {
PyObject *res;
--- 237,243 ----
if (v == NULL)
return PyString_FromString("<NULL>");
! else if (v->ob_type->tp_repr == NULL)
! return PyString_FromFormat("<%s object at %p",
! v->ob_type->tp_name, v);
else {
PyObject *res;
Index: rangeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/rangeobject.c,v
retrieving revision 2.28
retrieving revision 2.29
diff -C2 -d -r2.28 -r2.29
*** rangeobject.c 2001年08月16日 13:15:00 2.28
--- rangeobject.c 2001年08月24日 18:34:26 2.29
***************
*** 127,154 ****
range_repr(rangeobject *r)
{
! /* buffers must be big enough to hold 3 longs + an int +
! * a bit of "(xrange(...) * ...)" text.
! */
! char buf1[250];
! char buf2[250];
!
if (r->start == 0 && r->step == 1)
! sprintf(buf1, "xrange(%ld)", r->start + r->len * r->step);
else if (r->step == 1)
! sprintf(buf1, "xrange(%ld, %ld)",
! r->start,
! r->start + r->len * r->step);
else
! sprintf(buf1, "xrange(%ld, %ld, %ld)",
! r->start,
! r->start + r->len * r->step,
! r->step);
!
! if (r->reps != 1)
! sprintf(buf2, "(%s * %d)", buf1, r->reps);
!
! return PyString_FromString(r->reps == 1 ? buf1 : buf2);
}
--- 127,154 ----
range_repr(rangeobject *r)
{
! PyObject *rtn;
!
if (r->start == 0 && r->step == 1)
! rtn = PyString_FromFormat("xrange(%ld)",
! r->start + r->len * r->step);
else if (r->step == 1)
! rtn = PyString_FromFormat("xrange(%ld, %ld)",
! r->start,
! r->start + r->len * r->step);
else
! rtn = PyString_FromFormat("xrange(%ld, %ld, %ld)",
! r->start,
! r->start + r->len * r->step,
! r->step);
! if (r->reps != 1) {
! PyObject *extra = PyString_FromFormat(
! "(%s * %d)",
! PyString_AS_STRING(rtn), r->reps);
! Py_DECREF(rtn);
! rtn = extra;
! }
! return rtn;
}
Index: typeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v
retrieving revision 2.45
retrieving revision 2.46
diff -C2 -d -r2.45 -r2.46
*** typeobject.c 2001年08月24日 16:47:00 2.45
--- typeobject.c 2001年08月24日 18:34:26 2.46
***************
*** 114,119 ****
type_repr(PyTypeObject *type)
{
! PyObject *mod, *name;
! char buf[200];
mod = type_module(type, NULL);
--- 114,118 ----
type_repr(PyTypeObject *type)
{
! PyObject *mod, *name, *rtn;
mod = type_module(type, NULL);
***************
*** 127,139 ****
if (name == NULL)
return NULL;
! if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__"))
! sprintf(buf, "<type '%.80s.%.80s'>",
! PyString_AS_STRING(mod),
! PyString_AS_STRING(name));
else
! sprintf(buf, "<type '%.80s'>", type->tp_name);
Py_XDECREF(mod);
Py_DECREF(name);
! return PyString_FromString(buf);
}
--- 126,141 ----
if (name == NULL)
return NULL;
!
! if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__")) {
! rtn = PyString_FromFormat("<type '%s.%s'>",
! PyString_AS_STRING(mod),
! PyString_AS_STRING(name));
! }
else
! rtn = PyString_FromFormat("<type '%s'>", type->tp_name);
!
Py_XDECREF(mod);
Py_DECREF(name);
! return rtn;
}
***************
*** 969,974 ****
{
PyTypeObject *type;
! PyObject *mod, *name;
! char buf[200];
type = self->ob_type;
--- 971,975 ----
{
PyTypeObject *type;
! PyObject *mod, *name, *rtn;
type = self->ob_type;
***************
*** 984,996 ****
return NULL;
if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__"))
! sprintf(buf, "<%.80s.%.80s instance at %p>",
! PyString_AS_STRING(mod),
! PyString_AS_STRING(name),
! self);
else
! sprintf(buf, "<%.80s instance at %p>", type->tp_name, self);
Py_XDECREF(mod);
Py_DECREF(name);
! return PyString_FromString(buf);
}
--- 985,998 ----
return NULL;
if (mod != NULL && strcmp(PyString_AS_STRING(mod), "__builtin__"))
! rtn = PyString_FromFormat("<%s.%s instance at %p>",
! PyString_AS_STRING(mod),
! PyString_AS_STRING(name),
! self);
else
! rtn = PyString_FromFormat("<%s instance at %p>",
! type->tp_name, self);
Py_XDECREF(mod);
Py_DECREF(name);
! return rtn;
}
***************
*** 2591,2601 ****
return res;
}
! else {
! char buf[120];
! PyErr_Clear();
! sprintf(buf, "<%.80s object at %p>",
! self->ob_type->tp_name, self);
! return PyString_FromString(buf);
! }
}
--- 2593,2599 ----
return res;
}
! PyErr_Clear();
! return PyString_FromFormat("<%s object at %p>",
! self->ob_type->tp_name, self);
}