[Python-checkins] python/dist/src/Modules _csv.c,1.7,1.8
montanaro@users.sourceforge.net
montanaro@users.sourceforge.net
Sat, 12 Apr 2003 12:17:17 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv16070
Modified Files:
_csv.c
Log Message:
tighten up string checks
make csv_{get,unregister}_dialect METH_O functions to avoid PyArg_ParseTuple
Index: _csv.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_csv.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** _csv.c 12 Apr 2003 18:57:52 -0000 1.7
--- _csv.c 12 Apr 2003 19:17:14 -0000 1.8
***************
*** 188,193 ****
return -1;
}
! else
! *addr = PyString_AsString(v)[0];
return 0;
}
--- 188,197 ----
return -1;
}
! else {
! char *s = PyString_AsString(v);
! if (s == NULL)
! return -1;
! *addr = s[0];
! }
return 0;
}
***************
*** 348,352 ****
for (i = 0; i < PyList_GET_SIZE(dir_list); ++i) {
name_obj = PyList_GET_ITEM(dir_list, i);
! if (PyString_AsString(name_obj)[0] == '_')
continue;
value_obj = PyObject_GetAttr(dialect, name_obj);
--- 352,359 ----
for (i = 0; i < PyList_GET_SIZE(dir_list); ++i) {
name_obj = PyList_GET_ITEM(dir_list, i);
! char *s = PyString_AsString(name_obj);
! if (s == NULL)
! return -1;
! if (s[0] == '_')
continue;
value_obj = PyObject_GetAttr(dialect, name_obj);
***************
*** 1011,1014 ****
--- 1018,1022 ----
memmove(self->rec + self->rec_len,
+ /* should not be NULL */
PyString_AsString(self->dialect->lineterminator),
terminator_len);
***************
*** 1064,1068 ****
if (PyString_Check(field)) {
! append_ok = join_append(self, PyString_AsString(field),
"ed, len == 1);
Py_DECREF(field);
--- 1072,1077 ----
if (PyString_Check(field)) {
! append_ok = join_append(self,
! PyString_AS_STRING(field),
"ed, len == 1);
Py_DECREF(field);
***************
*** 1080,1084 ****
return NULL;
! append_ok = join_append(self, PyString_AsString(str),
"ed, len == 1);
Py_DECREF(str);
--- 1089,1093 ----
return NULL;
! append_ok = join_append(self, PyString_AS_STRING(str),
"ed, len == 1);
Py_DECREF(str);
***************
*** 1292,1301 ****
static PyObject *
! csv_unregister_dialect(PyObject *module, PyObject *args)
{
- PyObject *name_obj;
-
- if (!PyArg_ParseTuple(args, "O", &name_obj))
- return NULL;
if (PyDict_DelItem(dialects, name_obj) < 0)
return PyErr_Format(error_obj, "unknown dialect");
--- 1301,1306 ----
static PyObject *
! csv_unregister_dialect(PyObject *module, PyObject *name_obj)
{
if (PyDict_DelItem(dialects, name_obj) < 0)
return PyErr_Format(error_obj, "unknown dialect");
***************
*** 1305,1314 ****
static PyObject *
! csv_get_dialect(PyObject *module, PyObject *args)
{
- PyObject *name_obj;
-
- if (!PyArg_ParseTuple(args, "O", &name_obj))
- return NULL;
return get_dialect_from_registry(name_obj);
}
--- 1310,1315 ----
static PyObject *
! csv_get_dialect(PyObject *module, PyObject *name_obj)
{
return get_dialect_from_registry(name_obj);
}
***************
*** 1430,1436 ****
METH_VARARGS, csv_register_dialect_doc},
{ "unregister_dialect", (PyCFunction)csv_unregister_dialect,
! METH_VARARGS, csv_unregister_dialect_doc},
{ "get_dialect", (PyCFunction)csv_get_dialect,
! METH_VARARGS, csv_get_dialect_doc},
{ NULL, NULL }
};
--- 1431,1437 ----
METH_VARARGS, csv_register_dialect_doc},
{ "unregister_dialect", (PyCFunction)csv_unregister_dialect,
! METH_O, csv_unregister_dialect_doc},
{ "get_dialect", (PyCFunction)csv_get_dialect,
! METH_O, csv_get_dialect_doc},
{ NULL, NULL }
};