@@ -134,14 +134,13 @@ impl DownloadInstance {
134134 pub fn perform_request (
135135 & mut self ,
136136 url : & str ,
137- callbacks : DownloadInstanceOutputCallbacks ,
137+ callbacks : & DownloadInstanceOutputCallbacks ,
138138 ) -> Result < ( ) , String > {
139- let callbacks = Box :: into_raw ( Box :: new ( callbacks) ) ;
140139 let mut cbs = BNDownloadInstanceOutputCallbacks {
141140 writeCallback : Some ( Self :: o_write_callback) ,
142- writeContext : callbacks as * mut c_void ,
141+ writeContext : callbacks as * const _ as * mut c_void ,
143142 progressCallback : Some ( Self :: o_progress_callback) ,
144- progressContext : callbacks as * mut c_void ,
143+ progressContext : callbacks as * const _ as * mut c_void ,
145144 } ;
146145
147146 let url_raw = url. to_cstr ( ) ;
@@ -153,8 +152,6 @@ impl DownloadInstance {
153152 )
154153 } ;
155154
156- // Drop it
157- unsafe { drop ( Box :: from_raw ( callbacks) ) } ;
158155 if result < 0 {
159156 Err ( self . get_error ( ) )
160157 } else {
@@ -206,7 +203,7 @@ impl DownloadInstance {
206203 method : & str ,
207204 url : & str ,
208205 headers : I ,
209- callbacks : DownloadInstanceInputOutputCallbacks ,
206+ callbacks : & DownloadInstanceInputOutputCallbacks ,
210207 ) -> Result < DownloadResponse , String >
211208 where
212209 I : IntoIterator < Item = ( String , String ) > ,
@@ -226,14 +223,13 @@ impl DownloadInstance {
226223 header_value_ptrs. push ( value. as_ptr ( ) ) ;
227224 }
228225
229- let callbacks = Box :: into_raw ( Box :: new ( callbacks) ) ;
230226 let mut cbs = BNDownloadInstanceInputOutputCallbacks {
231227 readCallback : Some ( Self :: i_read_callback) ,
232- readContext : callbacks as * mut c_void ,
228+ readContext : callbacks as * const _ as * mut c_void ,
233229 writeCallback : Some ( Self :: i_write_callback) ,
234- writeContext : callbacks as * mut c_void ,
230+ writeContext : callbacks as * const _ as * mut c_void ,
235231 progressCallback : Some ( Self :: i_progress_callback) ,
236- progressContext : callbacks as * mut c_void ,
232+ progressContext : callbacks as * const _ as * mut c_void ,
237233 } ;
238234
239235 let mut response: * mut BNDownloadInstanceResponse = null_mut ( ) ;
0 commit comments