sp_brightness_grid_load ignore out of range
Some checks failed
Rust / build (pull_request) Failing after 30s
Some checks failed
Rust / build (pull_request) Failing after 30s
This commit is contained in:
parent
2e468fb47a
commit
a418e4f0c3
|
@ -24,7 +24,7 @@ sort_by = "Name"
|
|||
|
||||
[parse]
|
||||
parse_deps = true
|
||||
include = ["servicepoint"]
|
||||
include = ["servicepoint", "std"]
|
||||
extra_bindings = ["servicepoint"]
|
||||
|
||||
[parse.expand]
|
||||
|
|
|
@ -30,6 +30,8 @@ pub unsafe extern "C" fn sp_brightness_grid_new(
|
|||
|
||||
/// Loads a [BrightnessGrid] with the specified dimensions from the provided data.
|
||||
///
|
||||
/// Any out of range values will be set to [Brightness::MAX] or [Brightness::MIN].
|
||||
///
|
||||
/// returns: new [BrightnessGrid] instance, or NULL in case of an error.
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn sp_brightness_grid_load(
|
||||
|
@ -38,14 +40,12 @@ pub unsafe extern "C" fn sp_brightness_grid_load(
|
|||
data: ByteSlice,
|
||||
) -> *mut BrightnessGrid {
|
||||
let data = unsafe { data.as_slice() };
|
||||
let grid = match ByteGrid::load(width, height, data) {
|
||||
None => return std::ptr::null_mut(),
|
||||
Some(grid) => grid,
|
||||
};
|
||||
if let Ok(grid) = BrightnessGrid::try_from(grid) {
|
||||
heap_move(grid)
|
||||
} else {
|
||||
std::ptr::null_mut()
|
||||
|
||||
match ByteGrid::load(width, height, data)
|
||||
.map(move |grid| grid.map(Brightness::saturating_from))
|
||||
{
|
||||
None => std::ptr::null_mut(),
|
||||
Some(grid) => heap_move(grid),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue