@@ -274,21 +274,21 @@ unsafe impl<const ORDER: usize> GlobalAlloc for LockedHeap<ORDER> {
274
274
/// Create a locked heap:
275
275
/// ```
276
276
/// use buddy_system_allocator::*;
277
- /// let heap = LockedHeapWithRescue::new(|heap: &mut Heap<32>| {});
277
+ /// let heap = LockedHeapWithRescue::new(|heap: &mut Heap<32>, layout: &core::alloc::Layout | {});
278
278
/// ```
279
279
///
280
280
/// Before oom, the allocator will try to call rescue function and try for one more time.
281
281
#[ cfg( feature = "use_spin" ) ]
282
282
pub struct LockedHeapWithRescue < const ORDER : usize > {
283
283
inner : Mutex < Heap < ORDER > > ,
284
- rescue : fn ( & mut Heap < ORDER > ) ,
284
+ rescue : fn ( & mut Heap < ORDER > , & Layout ) ,
285
285
}
286
286
287
287
#[ cfg( feature = "use_spin" ) ]
288
288
impl < const ORDER : usize > LockedHeapWithRescue < ORDER > {
289
289
/// Creates an empty heap
290
290
#[ cfg( feature = "const_fn" ) ]
291
- pub const fn new ( rescue : fn ( & mut Heap ) ) -> Self {
291
+ pub const fn new ( rescue : fn ( & mut Heap < ORDER > , & Layout ) ) -> Self {
292
292
LockedHeapWithRescue {
293
293
inner : Mutex :: new ( Heap :: < ORDER > :: new ( ) ) ,
294
294
rescue,
@@ -297,7 +297,7 @@ impl<const ORDER: usize> LockedHeapWithRescue<ORDER> {
297
297
298
298
/// Creates an empty heap
299
299
#[ cfg( not( feature = "const_fn" ) ) ]
300
- pub fn new ( rescue : fn ( & mut Heap < ORDER > ) ) -> Self {
300
+ pub fn new ( rescue : fn ( & mut Heap < ORDER > , & Layout ) ) -> Self {
301
301
LockedHeapWithRescue {
302
302
inner : Mutex :: new ( Heap :: < ORDER > :: new ( ) ) ,
303
303
rescue,
@@ -321,7 +321,7 @@ unsafe impl<const ORDER: usize> GlobalAlloc for LockedHeapWithRescue<ORDER> {
321
321
match inner. alloc ( layout) {
322
322
Ok ( allocation) => allocation. as_ptr ( ) ,
323
323
Err ( _) => {
324
- ( self . rescue ) ( & mut inner) ;
324
+ ( self . rescue ) ( & mut inner, & layout ) ;
325
325
inner
326
326
. alloc ( layout)
327
327
. ok ( )
0 commit comments