@@ -119,7 +119,7 @@ impl<'repo> Tree<'repo> {
119
119
/// [1]: https://libgit2.org/libgit2/#HEAD/group/tree/git_tree_walk
120
120
pub fn walk < C , T > ( & self , mode : TreeWalkMode , mut callback : C ) -> Result < ( ) , Error >
121
121
where
122
- C : FnMut ( & str , & TreeEntry < ' _ > ) -> T ,
122
+ C : FnMut ( & [ u8 ] , & TreeEntry < ' _ > ) -> T ,
123
123
T : Into < i32 > ,
124
124
{
125
125
unsafe {
@@ -203,7 +203,7 @@ impl<'repo> Tree<'repo> {
203
203
}
204
204
}
205
205
206
- type TreeWalkCb < ' a , T > = dyn FnMut ( & str , & TreeEntry < ' _ > ) -> T + ' a ;
206
+ type TreeWalkCb < ' a , T > = dyn FnMut ( & [ u8 ] , & TreeEntry < ' _ > ) -> T + ' a ;
207
207
208
208
struct TreeWalkCbData < ' a , T > {
209
209
callback : & ' a mut TreeWalkCb < ' a , T > ,
@@ -215,10 +215,7 @@ extern "C" fn treewalk_cb<T: Into<i32>>(
215
215
payload : * mut c_void ,
216
216
) -> c_int {
217
217
match panic:: wrap ( || unsafe {
218
- let root = match CStr :: from_ptr ( root) . to_str ( ) {
219
- Ok ( value) => value,
220
- _ => return -1 ,
221
- } ;
218
+ let root = CStr :: from_ptr ( root) . to_bytes ( ) ;
222
219
let entry = entry_from_raw_const ( entry) ;
223
220
let payload = & mut * ( payload as * mut TreeWalkCbData < ' _ , T > ) ;
224
221
let callback = & mut payload. callback ;
0 commit comments