File tree 1 file changed +3
-13
lines changed 1 file changed +3
-13
lines changed Original file line number Diff line number Diff line change @@ -801,24 +801,14 @@ PyWeakref_NewRef(PyObject *ob, PyObject *callback)
801
801
if (result != NULL )
802
802
Py_INCREF (result );
803
803
else {
804
- /* Note: new_weakref() can trigger cyclic GC, so the weakref
805
- list on ob can be mutated. This means that the ref and
806
- proxy pointers we got back earlier may have been collected,
807
- so we need to compute these values again before we use
808
- them. */
804
+ /* We do not need to recompute ref/proxy; new_weakref() cannot
805
+ trigger GC.
806
+ */
809
807
result = new_weakref (ob , callback );
810
808
if (result != NULL ) {
811
- get_basic_refs (* list , & ref , & proxy );
812
809
if (callback == NULL ) {
813
810
if (ref == NULL )
814
811
insert_head (result , list );
815
- else {
816
- /* Someone else added a ref without a callback
817
- during GC. Return that one instead of this one
818
- to avoid violating the invariants of the list
819
- of weakrefs for ob. */
820
- Py_SETREF (result , (PyWeakReference * )Py_NewRef (ref ));
821
- }
822
812
}
823
813
else {
824
814
PyWeakReference * prev ;
You can’t perform that action at this time.
0 commit comments