1
1
use libc:: { c_char, c_int, c_uint, c_void, size_t} ;
2
- use std:: ffi:: { CStr , CString } ;
2
+ use std:: ffi:: CStr ;
3
3
use std:: mem;
4
4
use std:: ptr;
5
5
use std:: slice;
@@ -312,11 +312,7 @@ extern "C" fn credentials_cb(
312
312
313
313
let cred_type = CredentialType :: from_bits_truncate ( allowed_types as u32 ) ;
314
314
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 ( ) )
320
316
} ) ;
321
317
match ok {
322
318
Some ( Ok ( cred) ) => {
@@ -415,13 +411,7 @@ extern "C" fn certificate_check_cb(
415
411
match ok {
416
412
Some ( Ok ( CertificateCheckStatus :: CertificateOk ) ) => 0 ,
417
413
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 ( ) } ,
425
415
None => {
426
416
// Panic. The *should* get resumed by some future call to check().
427
417
-1
@@ -448,7 +438,7 @@ extern "C" fn push_update_reference_cb(
448
438
} ;
449
439
match callback ( refname, status) {
450
440
Ok ( ( ) ) => 0 ,
451
- Err ( e) => e. raw_code ( ) ,
441
+ Err ( e) => e. raw_set_git_error ( ) ,
452
442
}
453
443
} )
454
444
. unwrap_or ( -1 )
@@ -511,7 +501,7 @@ extern "C" fn push_negotiation_cb(
511
501
let updates = slice:: from_raw_parts ( updates as * mut PushUpdate < ' _ > , len) ;
512
502
match callback ( updates) {
513
503
Ok ( ( ) ) => 0 ,
514
- Err ( e) => e. raw_code ( ) ,
504
+ Err ( e) => e. raw_set_git_error ( ) ,
515
505
}
516
506
} )
517
507
. unwrap_or ( -1 )
0 commit comments