Skip to content

Commit 5f5504e

Browse files
nyurikdanielrh
authored andcommitted
Use method calls instead of match
This simplifies the code, keeping error handling more concise
1 parent d66b801 commit 5f5504e

File tree

2 files changed

+42
-56
lines changed

2 files changed

+42
-56
lines changed

src/ffi/compressor.rs

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ pub unsafe extern "C" fn BrotliEncoderCreateInstance(
7171
free_func: brotli_free_func,
7272
opaque: *mut c_void,
7373
) -> *mut BrotliEncoderState {
74-
match catch_panic_cstate(|| {
74+
catch_panic_cstate(|| {
7575
let allocators = CAllocator {
7676
alloc_func,
7777
free_func,
@@ -98,13 +98,11 @@ pub unsafe extern "C" fn BrotliEncoderCreateInstance(
9898
} else {
9999
brotli_new_compressor_without_custom_alloc(to_box)
100100
}
101-
}) {
102-
Ok(ret) => ret,
103-
Err(err) => {
104-
error_print(err);
105-
core::ptr::null_mut()
106-
}
107-
}
101+
})
102+
.unwrap_or_else(|err| {
103+
error_print(err);
104+
core::ptr::null_mut()
105+
})
108106
}
109107

110108
#[no_mangle]
@@ -186,7 +184,7 @@ pub unsafe extern "C" fn BrotliEncoderCompress(
186184
encoded_size: *mut usize,
187185
encoded_buffer: *mut u8,
188186
) -> i32 {
189-
match catch_panic(|| {
187+
catch_panic(|| {
190188
let input_buf = slice_from_raw_parts_or_nil(input_buffer, input_size);
191189
let encoded_buf = slice_from_raw_parts_or_nil_mut(encoded_buffer, *encoded_size);
192190
let allocators = CAllocator {
@@ -234,13 +232,11 @@ pub unsafe extern "C" fn BrotliEncoderCompress(
234232
encoded_buf,
235233
&mut |_a, _b, _c, _d| (),
236234
)
237-
}) {
238-
Ok(ret) => ret,
239-
Err(panic_err) => {
240-
error_print(panic_err);
241-
0
242-
}
243-
}
235+
})
236+
.unwrap_or_else(|panic_err| {
237+
error_print(panic_err);
238+
0
239+
})
244240
}
245241

246242
#[no_mangle]
@@ -273,7 +269,7 @@ pub unsafe extern "C" fn BrotliEncoderCompressStream(
273269
output_buf_ptr: *mut *mut u8,
274270
total_out: *mut usize,
275271
) -> i32 {
276-
match catch_panic(|| {
272+
catch_panic(|| {
277273
let mut input_offset = 0usize;
278274
let mut output_offset = 0usize;
279275
let result;
@@ -332,13 +328,11 @@ pub unsafe extern "C" fn BrotliEncoderCompressStream(
332328
}
333329
}
334330
result
335-
}) {
336-
Ok(ret) => ret,
337-
Err(panic_err) => {
338-
error_print(panic_err);
339-
0
340-
}
341-
}
331+
})
332+
.unwrap_or_else(|panic_err| {
333+
error_print(panic_err);
334+
0
335+
})
342336
}
343337

344338
#[no_mangle]

src/ffi/multicompress/mod.rs

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ pub unsafe extern "C" fn BrotliEncoderCompressMulti(
109109
return 0;
110110
}
111111
let num_threads = core::cmp::min(desired_num_threads, MAX_THREADS);
112-
match compressor::catch_panic(|| {
112+
compressor::catch_panic(|| {
113113
let param_keys_slice = slice_from_raw_parts_or_nil(param_keys, num_params);
114114
let param_values_slice = slice_from_raw_parts_or_nil(param_values, num_params);
115115
let input_slice = slice_from_raw_parts_or_nil(input, input_size);
@@ -204,13 +204,11 @@ pub unsafe extern "C" fn BrotliEncoderCompressMulti(
204204
}
205205
Err(_err) => 0,
206206
}
207-
}) {
208-
Ok(ret) => ret,
209-
Err(panic_err) => {
210-
error_print(panic_err);
211-
0
212-
}
213-
}
207+
})
208+
.unwrap_or_else(|panic_err| {
209+
error_print(panic_err);
210+
0
211+
})
214212
}
215213

216214
#[repr(C)]
@@ -246,7 +244,7 @@ pub unsafe extern "C" fn BrotliEncoderCreateWorkPool(
246244
free_func: brotli_free_func,
247245
opaque: *mut c_void,
248246
) -> *mut BrotliEncoderWorkPool {
249-
match catch_panic_wstate(|| {
247+
catch_panic_wstate(|| {
250248
let allocators = CAllocator {
251249
alloc_func,
252250
free_func,
@@ -271,13 +269,11 @@ pub unsafe extern "C" fn BrotliEncoderCreateWorkPool(
271269
} else {
272270
brotli_new_work_pool_without_custom_alloc(to_box)
273271
}
274-
}) {
275-
Ok(ret) => ret,
276-
Err(err) => {
277-
error_print(err);
278-
core::ptr::null_mut()
279-
}
280-
}
272+
})
273+
.unwrap_or_else(|err| {
274+
error_print(err);
275+
core::ptr::null_mut()
276+
})
281277
}
282278
#[cfg(feature = "std")]
283279
unsafe fn free_work_pool_no_custom_alloc(_work_pool: *mut BrotliEncoderWorkPool) {
@@ -329,7 +325,7 @@ pub unsafe extern "C" fn BrotliEncoderCompressWorkPool(
329325
return 0;
330326
}
331327
if work_pool.is_null() {
332-
match compressor::catch_panic(|| {
328+
return compressor::catch_panic(|| {
333329
BrotliEncoderCompressMulti(
334330
num_params,
335331
param_keys,
@@ -343,16 +339,14 @@ pub unsafe extern "C" fn BrotliEncoderCompressWorkPool(
343339
free_func,
344340
alloc_opaque_per_thread,
345341
)
346-
}) {
347-
Ok(ret) => return ret, // no panic
348-
Err(panic_err) => {
349-
error_print(panic_err); // print panic
350-
return 0; // fail
351-
}
352-
}
342+
})
343+
.unwrap_or_else(|panic_err| {
344+
error_print(panic_err); // print panic
345+
0 // fail
346+
});
353347
}
354348
let work_pool_wrapper = UnsafeUnwindBox(work_pool);
355-
match compressor::catch_panic(|| {
349+
compressor::catch_panic(|| {
356350
let null_opaques = [core::ptr::null_mut::<c_void>(); MAX_THREADS];
357351
let alloc_opaque = if alloc_opaque_per_thread.is_null() {
358352
&null_opaques[..]
@@ -424,13 +418,11 @@ pub unsafe extern "C" fn BrotliEncoderCompressWorkPool(
424418
}
425419
Err(_err) => 0,
426420
}
427-
}) {
428-
Ok(ret) => ret, // no panic
429-
Err(panic_err) => {
430-
error_print(panic_err); // print panic
431-
0 // fail
432-
}
433-
}
421+
})
422+
.unwrap_or_else(|panic_err| {
423+
error_print(panic_err); // print panic
424+
0 // fail
425+
})
434426
}
435427

436428
#[cfg(all(feature = "std", not(feature = "pass-through-ffi-panics")))]

0 commit comments

Comments
 (0)