File tree Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Expand file tree Collapse file tree 1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -166,24 +166,28 @@ weakref_repr(PyWeakReference *self)
166
166
if (PyWeakref_GET_OBJECT (self ) == Py_None )
167
167
return PyUnicode_FromFormat ("<weakref at %p; dead>" , self );
168
168
169
- if (_PyObject_LookupAttrId (PyWeakref_GET_OBJECT (self ), & PyId___name__ , & name ) < 0 ) {
169
+ PyObect * obj = PyWeakref_GET_OBJECT (self );
170
+ Py_INCREF (obj );
171
+ if (_PyObject_LookupAttrId (obj , & PyId___name__ , & name ) < 0 ) {
172
+ Py_DECREF (obj );
170
173
return NULL ;
171
174
}
172
175
if (name == NULL || !PyUnicode_Check (name )) {
173
176
repr = PyUnicode_FromFormat (
174
177
"<weakref at %p; to '%s' at %p>" ,
175
178
self ,
176
179
Py_TYPE (PyWeakref_GET_OBJECT (self ))-> tp_name ,
177
- PyWeakref_GET_OBJECT ( self ) );
180
+ obj );
178
181
}
179
182
else {
180
183
repr = PyUnicode_FromFormat (
181
184
"<weakref at %p; to '%s' at %p (%U)>" ,
182
185
self ,
183
186
Py_TYPE (PyWeakref_GET_OBJECT (self ))-> tp_name ,
184
- PyWeakref_GET_OBJECT ( self ) ,
187
+ obj ,
185
188
name );
186
189
}
190
+ Py_DECREF (obj );
187
191
Py_XDECREF (name );
188
192
return repr ;
189
193
}
You can’t perform that action at this time.
0 commit comments