@@ -7,21 +7,17 @@ fn f5(a0: i32, a1: Ptr<u8>, a2: AnyPtr) -> i32 {
77 if a0 == libc:: AF_INET {
88 match a1. to_rust_string ( ) . parse :: < std:: net:: Ipv4Addr > ( ) {
99 Ok ( __ip) => {
10- let __octets = __ip. octets ( ) ;
11- for __i in 0 ..4 {
12- a2. reinterpret_cast :: < u8 > ( ) . offset ( __i) . write ( __octets[ __i] ) ;
13- }
10+ a2. reinterpret_cast :: < u8 > ( )
11+ . with_slice_mut ( 4 , |__s| __s. copy_from_slice ( & __ip. octets ( ) ) ) ;
1412 1
1513 }
1614 Err ( _) => 0 ,
1715 }
1816 } else if a0 == libc:: AF_INET6 {
1917 match a1. to_rust_string ( ) . parse :: < std:: net:: Ipv6Addr > ( ) {
2018 Ok ( __ip) => {
21- let __octets = __ip. octets ( ) ;
22- for __i in 0 ..16 {
23- a2. reinterpret_cast :: < u8 > ( ) . offset ( __i) . write ( __octets[ __i] ) ;
24- }
19+ a2. reinterpret_cast :: < u8 > ( )
20+ . with_slice_mut ( 16 , |__s| __s. copy_from_slice ( & __ip. octets ( ) ) ) ;
2521 1
2622 }
2723 Err ( _) => 0 ,
@@ -34,26 +30,25 @@ fn f5(a0: i32, a1: Ptr<u8>, a2: AnyPtr) -> i32 {
3430
3531fn f6 ( a0 : i32 , a1 : AnyPtr , a2 : Ptr < u8 > , a3 : u32 ) -> Ptr < u8 > {
3632 let __text = if a0 == libc:: AF_INET {
37- let mut __b = [ 0u8 ; 4 ] ;
38- for __i in 0 ..4 {
39- __b[ __i] = a1. reinterpret_cast :: < u8 > ( ) . offset ( __i) . read ( ) ;
40- }
33+ let __b: [ u8 ; 4 ] = a1
34+ . reinterpret_cast :: < u8 > ( )
35+ . with_slice ( 4 , |__s| __s. try_into ( ) . unwrap ( ) ) ;
4136 Some ( std:: net:: Ipv4Addr :: from ( __b) . to_string ( ) )
4237 } else if a0 == libc:: AF_INET6 {
43- let mut __b = [ 0u8 ; 16 ] ;
44- for __i in 0 ..16 {
45- __b[ __i] = a1. reinterpret_cast :: < u8 > ( ) . offset ( __i) . read ( ) ;
46- }
38+ let __b: [ u8 ; 16 ] = a1
39+ . reinterpret_cast :: < u8 > ( )
40+ . with_slice ( 16 , |__s| __s. try_into ( ) . unwrap ( ) ) ;
4741 Some ( std:: net:: Ipv6Addr :: from ( __b) . to_string ( ) )
4842 } else {
4943 None
5044 } ;
5145 match __text {
5246 Some ( __s) if ( __s. len ( ) as u32 ) < a3 => {
53- for __i in 0 ..__s. len ( ) {
54- a2. offset ( __i) . write ( __s. as_bytes ( ) [ __i] ) ;
55- }
56- a2. offset ( __s. len ( ) ) . write ( 0 ) ;
47+ let __n = __s. len ( ) ;
48+ a2. with_slice_mut ( __n + 1 , |__sl| {
49+ __sl[ ..__n] . copy_from_slice ( __s. as_bytes ( ) ) ;
50+ __sl[ __n] = 0 ;
51+ } ) ;
5752 a2. clone ( )
5853 }
5954 Some ( _) => {
0 commit comments