@@ -122,10 +122,6 @@ impl<'repo> Tree<'repo> {
122
122
C : FnMut ( & str , & TreeEntry < ' _ > ) -> T ,
123
123
T : Into < i32 > ,
124
124
{
125
- #[ allow( unused) ]
126
- struct TreeWalkCbData < ' a , T > {
127
- pub callback : & ' a mut TreeWalkCb < ' a , T > ,
128
- }
129
125
unsafe {
130
126
let mut data = TreeWalkCbData {
131
127
callback : & mut callback,
@@ -209,6 +205,10 @@ impl<'repo> Tree<'repo> {
209
205
210
206
type TreeWalkCb < ' a , T > = dyn FnMut ( & str , & TreeEntry < ' _ > ) -> T + ' a ;
211
207
208
+ struct TreeWalkCbData < ' a , T > {
209
+ callback : & ' a mut TreeWalkCb < ' a , T > ,
210
+ }
211
+
212
212
extern "C" fn treewalk_cb < T : Into < i32 > > (
213
213
root : * const c_char ,
214
214
entry : * const raw:: git_tree_entry ,
@@ -220,8 +220,9 @@ extern "C" fn treewalk_cb<T: Into<i32>>(
220
220
_ => return -1 ,
221
221
} ;
222
222
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 ( )
225
226
} ) {
226
227
Some ( value) => value,
227
228
None => -1 ,
0 commit comments