summaryrefslogtreecommitdiffstats
path: root/Objects/object.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2011-10-09 08:38:36 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2011-10-09 08:38:36 (GMT)
commitafe55bba33a20f87a58f940186359237064b428f (patch)
tree66d64a1518d79c3d0e90c0a1d0080cd88e887d99 /Objects/object.c
parent67df285a3389c7fdb8c7bd301314ac45e17f8074 (diff)
downloadcpython-afe55bba33a20f87a58f940186359237064b428f.zip
cpython-afe55bba33a20f87a58f940186359237064b428f.tar.gz
cpython-afe55bba33a20f87a58f940186359237064b428f.tar.bz2
Add API for static strings, primarily good for identifiers.
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
Diffstat (limited to 'Objects/object.c')
-rw-r--r--Objects/object.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/Objects/object.c b/Objects/object.c
index aeaa4b5..7db60f3 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -811,6 +811,42 @@ PyObject_SetAttrString(PyObject *v, const char *name, PyObject *w)
}
PyObject *
+_PyObject_GetAttrId(PyObject *v, _Py_Identifier *name)
+{
+ PyObject *result;
+ PyObject *oname = _PyUnicode_FromId(name);
+ if (!oname)
+ return NULL;
+ result = PyObject_GetAttr(v, oname);
+ Py_DECREF(oname);
+ return result;
+}
+
+int
+_PyObject_HasAttrId(PyObject *v, _Py_Identifier *name)
+{
+ int result;
+ PyObject *oname = _PyUnicode_FromId(name);
+ if (!oname)
+ return -1;
+ result = PyObject_HasAttr(v, oname);
+ Py_DECREF(oname);
+ return result;
+}
+
+int
+_PyObject_SetAttrId(PyObject *v, _Py_Identifier *name, PyObject *w)
+{
+ int result;
+ PyObject *oname = _PyUnicode_FromId(name);
+ if (!oname)
+ return -1;
+ result = PyObject_SetAttr(v, oname, w);
+ Py_DECREF(oname);
+ return result;
+}
+
+PyObject *
PyObject_GetAttr(PyObject *v, PyObject *name)
{
PyTypeObject *tp = Py_TYPE(v);