equal
deleted
inserted
replaced
175 let leaked = self.inner(py).borrow(); |
175 let leaked = self.inner(py).borrow(); |
176 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
176 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
177 let inner: &RefCell<VCGLazyAncestors<PySharedIndex>> = |
177 let inner: &RefCell<VCGLazyAncestors<PySharedIndex>> = |
178 &*unsafe { leaked.try_borrow(py)? }; |
178 &*unsafe { leaked.try_borrow(py)? }; |
179 let inner_mut: &mut VCGLazyAncestors<PySharedIndex> = |
179 let inner_mut: &mut VCGLazyAncestors<PySharedIndex> = |
180 &mut *inner.borrow_mut(); |
180 &mut inner.borrow_mut(); |
181 inner_mut.contains(rev.0) |
181 inner_mut.contains(rev.0) |
182 .map_err(|e| GraphError::pynew_from_vcsgraph(py, e)) |
182 .map_err(|e| GraphError::pynew_from_vcsgraph(py, e)) |
183 } |
183 } |
184 |
184 |
185 def __iter__(&self) -> PyResult<AncestorsIterator> { |
185 def __iter__(&self) -> PyResult<AncestorsIterator> { |
333 // implement it for a Python set rewrapped with the GIL marker |
333 // implement it for a Python set rewrapped with the GIL marker |
334 let leaked = py_rust_index_to_graph(py, |
334 let leaked = py_rust_index_to_graph(py, |
335 self.index(py).clone_ref(py))?; |
335 self.index(py).clone_ref(py))?; |
336 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
336 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
337 let index = &*unsafe { leaked.try_borrow(py)? }; |
337 let index = &*unsafe { leaked.try_borrow(py)? }; |
338 rev_pyiter_collect(py, &revs, &*index)? |
338 rev_pyiter_collect(py, &revs, index)? |
339 }; |
339 }; |
340 |
340 |
341 let mut leaked = self.inner(py).borrow_mut(); |
341 let mut leaked = self.inner(py).borrow_mut(); |
342 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
342 // Safety: we don't leak the "faked" reference out of `UnsafePyLeaked` |
343 let inner: &mut CoreMissing<PySharedIndex> = |
343 let inner: &mut CoreMissing<PySharedIndex> = |