sp_brightness_grid_load ignore out of range
This commit is contained in:
		
							parent
							
								
									0af8ea98dd
								
							
						
					
					
						commit
						8dcced489a
					
				
					 2 changed files with 9 additions and 9 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vinzenz Schroeter
						Vinzenz Schroeter