summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2011-11-07 12:00:05 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2011-11-07 12:00:05 (GMT)
commitd10759f6edb713e945d1caf19d74ea4e12da7894 (patch)
tree81ca1ffcbe397faaa4119100a44dc3c21668da9c /Objects
parente9b11c1cd8ad68e829ae627ef48bdbc940f8e7fb (diff)
downloadcpython-d10759f6edb713e945d1caf19d74ea4e12da7894.zip
cpython-d10759f6edb713e945d1caf19d74ea4e12da7894.tar.gz
cpython-d10759f6edb713e945d1caf19d74ea4e12da7894.tar.bz2
Make _PyUnicode_FromId return borrowed references.
http://mail.python.org/pipermail/python-dev/2011-November/114347.html
Diffstat (limited to 'Objects')
-rw-r--r--Objects/object.c9
-rw-r--r--Objects/typeobject.c3
-rw-r--r--Objects/unicodeobject.c1
3 files changed, 4 insertions, 9 deletions
diff --git a/Objects/object.c b/Objects/object.c
index 7db60f3..51188b7 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -814,11 +814,10 @@ PyObject *
_PyObject_GetAttrId(PyObject *v, _Py_Identifier *name)
{
PyObject *result;
- PyObject *oname = _PyUnicode_FromId(name);
+ PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
if (!oname)
return NULL;
result = PyObject_GetAttr(v, oname);
- Py_DECREF(oname);
return result;
}
@@ -826,11 +825,10 @@ int
_PyObject_HasAttrId(PyObject *v, _Py_Identifier *name)
{
int result;
- PyObject *oname = _PyUnicode_FromId(name);
+ PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
if (!oname)
return -1;
result = PyObject_HasAttr(v, oname);
- Py_DECREF(oname);
return result;
}
@@ -838,11 +836,10 @@ int
_PyObject_SetAttrId(PyObject *v, _Py_Identifier *name, PyObject *w)
{
int result;
- PyObject *oname = _PyUnicode_FromId(name);
+ PyObject *oname = _PyUnicode_FromId(name); /* borrowed */
if (!oname)
return -1;
result = PyObject_SetAttr(v, oname, w);
- Py_DECREF(oname);
return result;
}
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 6b60c8f..2ca1b8f 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -1716,11 +1716,10 @@ get_dict_descriptor(PyTypeObject *type)
PyObject *dict_str;
PyObject *descr;
- dict_str = _PyUnicode_FromId(&PyId___dict__);
+ dict_str = _PyUnicode_FromId(&PyId___dict__); /* borrowed */
if (dict_str == NULL)
return NULL;
descr = _PyType_Lookup(type, dict_str);
- Py_DECREF(dict_str);
if (descr == NULL || !PyDescr_IsData(descr))
return NULL;
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 8f82502..3c14b6b 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1723,7 +1723,6 @@ _PyUnicode_FromId(_Py_Identifier *id)
id->next = static_strings;
static_strings = id;
}
- Py_INCREF(id->object);
return id->object;
}