11use libc:: { c_char, c_int, c_uint, c_void, size_t} ;
2- use std:: ffi:: { CStr , CString } ;
2+ use std:: ffi:: CStr ;
33use std:: mem;
44use std:: ptr;
55use std:: slice;
@@ -312,11 +312,7 @@ extern "C" fn credentials_cb(
312312
313313 let cred_type = CredentialType :: from_bits_truncate ( allowed_types as u32 ) ;
314314
315- callback ( url, username_from_url, cred_type) . map_err ( |e| {
316- let s = CString :: new ( e. to_string ( ) ) . unwrap ( ) ;
317- raw:: git_error_set_str ( e. class ( ) as c_int , s. as_ptr ( ) ) ;
318- e. raw_code ( ) as c_int
319- } )
315+ callback ( url, username_from_url, cred_type) . map_err ( |e| e. raw_set_git_error ( ) )
320316 } ) ;
321317 match ok {
322318 Some ( Ok ( cred) ) => {
@@ -415,13 +411,7 @@ extern "C" fn certificate_check_cb(
415411 match ok {
416412 Some ( Ok ( CertificateCheckStatus :: CertificateOk ) ) => 0 ,
417413 Some ( Ok ( CertificateCheckStatus :: CertificatePassthrough ) ) => raw:: GIT_PASSTHROUGH as c_int ,
418- Some ( Err ( e) ) => {
419- let s = CString :: new ( e. message ( ) ) . unwrap ( ) ;
420- unsafe {
421- raw:: git_error_set_str ( e. class ( ) as c_int , s. as_ptr ( ) ) ;
422- }
423- e. raw_code ( ) as c_int
424- }
414+ Some ( Err ( e) ) => unsafe { e. raw_set_git_error ( ) } ,
425415 None => {
426416 // Panic. The *should* get resumed by some future call to check().
427417 -1
@@ -448,7 +438,7 @@ extern "C" fn push_update_reference_cb(
448438 } ;
449439 match callback ( refname, status) {
450440 Ok ( ( ) ) => 0 ,
451- Err ( e) => e. raw_code ( ) ,
441+ Err ( e) => e. raw_set_git_error ( ) ,
452442 }
453443 } )
454444 . unwrap_or ( -1 )
@@ -511,7 +501,7 @@ extern "C" fn push_negotiation_cb(
511501 let updates = slice:: from_raw_parts ( updates as * mut PushUpdate < ' _ > , len) ;
512502 match callback ( updates) {
513503 Ok ( ( ) ) => 0 ,
514- Err ( e) => e. raw_code ( ) ,
504+ Err ( e) => e. raw_set_git_error ( ) ,
515505 }
516506 } )
517507 . unwrap_or ( -1 )
0 commit comments