Author: guido.van.rossum
Date: Mon Nov 5 19:58:29 2007
New Revision: 58861
Modified:
python/branches/py3k-pep3137/Modules/_bsddb.c
python/branches/py3k-pep3137/Python/modsupport.c
Log:
Change 'y#' so that it creates a PyString (i.e. a "bytes" instance)
rather than a PyBytes. This makes more sense (PyBytes is really a
rarely-use type).
Change bsddb C code to return bytes (PyString) instead of buffer (PyBytes).
Modified: python/branches/py3k-pep3137/Modules/_bsddb.c
==============================================================================
--- python/branches/py3k-pep3137/Modules/_bsddb.c (original)
+++ python/branches/py3k-pep3137/Modules/_bsddb.c Mon Nov 5 19:58:29 2007
@@ -1520,7 +1520,7 @@
retval = Py_BuildValue("y#y#", key.data, key.size, data.data,
data.size);
else /* return just the data */
- retval = PyBytes_FromStringAndSize((char*)data.data, data.size);
+ retval = PyString_FromStringAndSize((char*)data.data, data.size);
free_dbt(&data);
}
FREE_DBT_VIEW(key, keyobj, key_buf_view);
@@ -1590,13 +1590,13 @@
else if (!err) {
PyObject *pkeyObj;
PyObject *dataObj;
- dataObj = PyBytes_FromStringAndSize(data.data, data.size);
+ dataObj = PyString_FromStringAndSize(data.data, data.size);
if (self->primaryDBType == DB_RECNO ||
self->primaryDBType == DB_QUEUE)
pkeyObj = PyInt_FromLong(*(int *)pkey.data);
else
- pkeyObj = PyBytes_FromStringAndSize(pkey.data, pkey.size);
+ pkeyObj = PyString_FromStringAndSize(pkey.data, pkey.size);
if (flags & DB_SET_RECNO) /* return key , pkey and data */
{
@@ -1605,7 +1605,7 @@
if (type == DB_RECNO || type == DB_QUEUE)
keyObj = PyInt_FromLong(*(int *)key.data);
else
- keyObj = PyBytes_FromStringAndSize(key.data, key.size);
+ keyObj = PyString_FromStringAndSize(key.data, key.size);
#if (PY_VERSION_HEX >= 0x02040000)
retval = PyTuple_Pack(3, keyObj, pkeyObj, dataObj);
#else
@@ -1732,7 +1732,8 @@
else if (!err) {
/* XXX(nnorwitz): can we do: retval = dataobj; Py_INCREF(retval); */
/* XXX(gps) I think not: buffer API input vs. bytes object output. */
- retval = PyBytes_FromStringAndSize((char*)data.data, data.size);
+ /* XXX(guido) But what if the input is PyString? */
+ retval = PyString_FromStringAndSize((char*)data.data, data.size);
/* Even though the flags require DB_DBT_MALLOC, data is not always
allocated. 4.4: allocated, 4.5: *not* allocated. :-( */
@@ -2787,7 +2788,7 @@
retval = NULL;
}
else {
- retval = PyBytes_FromStringAndSize((char*)data.data, data.size);
+ retval = PyString_FromStringAndSize((char*)data.data, data.size);
free_dbt(&data);
}
@@ -2942,7 +2943,7 @@
case DB_BTREE:
case DB_HASH:
default:
- item = PyBytes_FromStringAndSize((char*)key.data, key.size);
+ item = PyString_FromStringAndSize((char*)key.data, key.size);
break;
case DB_RECNO:
case DB_QUEUE:
@@ -2952,7 +2953,7 @@
break;
case _VALUES_LIST:
- item = PyBytes_FromStringAndSize((char*)data.data, data.size);
+ item = PyString_FromStringAndSize((char*)data.data, data.size);
break;
case _ITEMS_LIST:
@@ -3300,13 +3301,13 @@
else {
PyObject *pkeyObj;
PyObject *dataObj;
- dataObj = PyBytes_FromStringAndSize(data.data, data.size);
+ dataObj = PyString_FromStringAndSize(data.data, data.size);
if (self->mydb->primaryDBType == DB_RECNO ||
self->mydb->primaryDBType == DB_QUEUE)
pkeyObj = PyInt_FromLong(*(int *)pkey.data);
else
- pkeyObj = PyBytes_FromStringAndSize(pkey.data, pkey.size);
+ pkeyObj = PyString_FromStringAndSize(pkey.data, pkey.size);
if (key.data && key.size) /* return key, pkey and data */
{
@@ -3315,7 +3316,7 @@
if (type == DB_RECNO || type == DB_QUEUE)
keyObj = PyInt_FromLong(*(int *)key.data);
else
- keyObj = PyBytes_FromStringAndSize(key.data, key.size);
+ keyObj = PyString_FromStringAndSize(key.data, key.size);
retval = PyTuple_Pack(3, keyObj, pkeyObj, dataObj);
Py_DECREF(keyObj);
}
@@ -4905,7 +4906,7 @@
MYDB_END_ALLOW_THREADS
if (!err)
- retval = PyBytes_FromStringAndSize(key.data, key.size);
+ retval = PyString_FromStringAndSize(key.data, key.size);
free_dbt(&key);
RETURN_IF_ERR();
Modified: python/branches/py3k-pep3137/Python/modsupport.c
==============================================================================
--- python/branches/py3k-pep3137/Python/modsupport.c (original)
+++ python/branches/py3k-pep3137/Python/modsupport.c Mon Nov 5 19:58:29 2007
@@ -504,7 +504,7 @@
}
n = (Py_ssize_t)m;
}
- v = PyBytes_FromStringAndSize(str, n);
+ v = PyString_FromStringAndSize(str, n);
}
return v;
}
_______________________________________________
Python-3000-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000-checkins