… | |
… | |
288 | } |
288 | } |
289 | |
289 | |
290 | static void |
290 | static void |
291 | adjust_heap (AV *av, f_cmp cmp, void *cmp_data, int idx, int flags) |
291 | adjust_heap (AV *av, f_cmp cmp, void *cmp_data, int idx, int flags) |
292 | { |
292 | { |
|
|
293 | int len = AvFILLp (av); |
|
|
294 | |
|
|
295 | if (idx > len) |
|
|
296 | croak ("Array::Heap::adjust_heap: index out of array bounds"); |
|
|
297 | |
293 | adjustheap (av, cmp, cmp_data, AvFILLp (av) + 1, idx, flags); |
298 | adjustheap (av, cmp, cmp_data, len + 1, idx, flags); |
294 | } |
299 | } |
295 | |
300 | |
296 | MODULE = Array::Heap PACKAGE = Array::Heap |
301 | MODULE = Array::Heap PACKAGE = Array::Heap |
297 | |
302 | |
298 | void |
303 | void |