(&self, obj: &PyObject)
| 761 | } |
| 762 | |
| 763 | fn get_weak_references(&self, obj: &PyObject) -> Vec<PyRef<PyWeak>> { |
| 764 | let _lock = weakref_lock::lock(obj as *const PyObject as usize); |
| 765 | let mut v = Vec::new(); |
| 766 | let mut current = NonNull::new(self.head.load(Ordering::Relaxed)); |
| 767 | while let Some(node) = current { |
| 768 | let wr = unsafe { node.as_ref() }; |
| 769 | if wr.0.ref_count.safe_inc() { |
| 770 | v.push(unsafe { PyRef::from_raw(wr as *const Py<PyWeak>) }); |
| 771 | } |
| 772 | current = unsafe { WeakLink::pointers(node).as_ref().get_next() }; |
| 773 | } |
| 774 | v |
| 775 | } |
| 776 | } |
| 777 | |
| 778 | impl Default for WeakRefList { |
no test coverage detected