diff --git a/rust/hg-cpython/src/dirstate/dirstate_map.rs b/rust/hg-cpython/src/dirstate/dirstate_map.rs --- a/rust/hg-cpython/src/dirstate/dirstate_map.rs +++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs @@ -323,7 +323,7 @@ py_class!(pub class DirstateMap |py| { let (leak_handle, leaked_ref) = unsafe { self.leak_immutable(py)? }; DirstateMapKeysIterator::from_inner( py, - Some(leak_handle), + leak_handle, leaked_ref.iter(), ) } @@ -332,7 +332,7 @@ py_class!(pub class DirstateMap |py| { let (leak_handle, leaked_ref) = unsafe { self.leak_immutable(py)? }; DirstateMapItemsIterator::from_inner( py, - Some(leak_handle), + leak_handle, leaked_ref.iter(), ) } @@ -341,7 +341,7 @@ py_class!(pub class DirstateMap |py| { let (leak_handle, leaked_ref) = unsafe { self.leak_immutable(py)? }; DirstateMapKeysIterator::from_inner( py, - Some(leak_handle), + leak_handle, leaked_ref.iter(), ) } @@ -438,7 +438,7 @@ py_class!(pub class DirstateMap |py| { let (leak_handle, leaked_ref) = unsafe { self.leak_immutable(py)? }; CopyMapKeysIterator::from_inner( py, - Some(leak_handle), + leak_handle, leaked_ref.copy_map.iter(), ) } @@ -447,7 +447,7 @@ py_class!(pub class DirstateMap |py| { let (leak_handle, leaked_ref) = unsafe { self.leak_immutable(py)? }; CopyMapItemsIterator::from_inner( py, - Some(leak_handle), + leak_handle, leaked_ref.copy_map.iter(), ) } diff --git a/rust/hg-cpython/src/ref_sharing.rs b/rust/hg-cpython/src/ref_sharing.rs --- a/rust/hg-cpython/src/ref_sharing.rs +++ b/rust/hg-cpython/src/ref_sharing.rs @@ -378,12 +378,12 @@ macro_rules! py_shared_iterator { impl $name { pub fn from_inner( py: Python, - leaked: Option<$leaked>, + leaked: $leaked, it: $iterator_type ) -> PyResult { Self::create_instance( py, - RefCell::new(leaked), + RefCell::new(Some(leaked)), RefCell::new(it) ) }