@@ -122,10 +122,6 @@ impl<'repo> Tree<'repo> {
122122 C : FnMut ( & str , & TreeEntry < ' _ > ) -> T ,
123123 T : Into < i32 > ,
124124 {
125- #[ allow( unused) ]
126- struct TreeWalkCbData < ' a , T > {
127- pub callback : & ' a mut TreeWalkCb < ' a , T > ,
128- }
129125 unsafe {
130126 let mut data = TreeWalkCbData {
131127 callback : & mut callback,
@@ -209,6 +205,10 @@ impl<'repo> Tree<'repo> {
209205
210206type TreeWalkCb < ' a , T > = dyn FnMut ( & str , & TreeEntry < ' _ > ) -> T + ' a ;
211207
208+ struct TreeWalkCbData < ' a , T > {
209+ callback : & ' a mut TreeWalkCb < ' a , T > ,
210+ }
211+
212212extern "C" fn treewalk_cb < T : Into < i32 > > (
213213 root : * const c_char ,
214214 entry : * const raw:: git_tree_entry ,
@@ -220,8 +220,9 @@ extern "C" fn treewalk_cb<T: Into<i32>>(
220220 _ => return -1 ,
221221 } ;
222222 let entry = entry_from_raw_const ( entry) ;
223- let payload = payload as * mut & mut TreeWalkCb < ' _ , T > ;
224- ( * payload) ( root, & entry) . into ( )
223+ let payload = & mut * ( payload as * mut TreeWalkCbData < ' _ , T > ) ;
224+ let callback = & mut payload. callback ;
225+ callback ( root, & entry) . into ( )
225226 } ) {
226227 Some ( value) => value,
227228 None => -1 ,
0 commit comments