diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2011-10-09 08:38:36 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2011-10-09 08:38:36 (GMT) |
commit | afe55bba33a20f87a58f940186359237064b428f (patch) | |
tree | 66d64a1518d79c3d0e90c0a1d0080cd88e887d99 /Objects/object.c | |
parent | 67df285a3389c7fdb8c7bd301314ac45e17f8074 (diff) | |
download | cpython-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.c | 36 |
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); |