diff options
author | Thomas Martitz <kugel@rockbox.org> | 2011-10-05 18:32:19 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2011-10-05 18:32:19 +0000 |
commit | 4478b25ede0129b1572145737627db7297dcc89f (patch) | |
tree | 26e30d0021ee7d3433ec055c4576cb24f14d9080 /apps/debug_menu.c | |
parent | 6efb3f0760b54fb80423924a7aab17da043dbba9 (diff) | |
download | rockbox-4478b25ede0129b1572145737627db7297dcc89f.tar.gz rockbox-4478b25ede0129b1572145737627db7297dcc89f.zip |
core_alloc: Provide a tiny test allocation, which can be freed for debug purposes.
This allocation can be freed in the buflib debug menu (select it to free).
Doing a another allocation, e.g. by selecting another item in this debug menu
will cause compaction (all allocs move).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30719 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r-- | apps/debug_menu.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 7c2e6c7870..e96b8c553f 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -429,14 +429,21 @@ static int bf_action_cb(int action, struct gui_synclist* list) | |||
429 | { | 429 | { |
430 | if (action == ACTION_STD_OK) | 430 | if (action == ACTION_STD_OK) |
431 | { | 431 | { |
432 | splash(HZ/1, "Attempting a 64k allocation"); | 432 | if (gui_synclist_get_sel_pos(list) == 0 && core_test_free()) |
433 | int handle = core_alloc("test", 64<<10); | 433 | { |
434 | splash(HZ/2, (handle > 0) ? "Success":"Fail"); | 434 | splash(HZ, "Freed test handle. New alloc should trigger compact"); |
435 | /* for some reason simplelist doesn't allow adding items here if | 435 | } |
436 | * info.get_name is given, so use normal list api */ | 436 | else |
437 | gui_synclist_set_nb_items(list, core_get_num_blocks()); | 437 | { |
438 | if (handle > 0) | 438 | splash(HZ/1, "Attempting a 64k allocation"); |
439 | core_free(handle); | 439 | int handle = core_alloc("test", 64<<10); |
440 | splash(HZ/2, (handle > 0) ? "Success":"Fail"); | ||
441 | /* for some reason simplelist doesn't allow adding items here if | ||
442 | * info.get_name is given, so use normal list api */ | ||
443 | gui_synclist_set_nb_items(list, core_get_num_blocks()); | ||
444 | if (handle > 0) | ||
445 | core_free(handle); | ||
446 | } | ||
440 | action = ACTION_REDRAW; | 447 | action = ACTION_REDRAW; |
441 | } | 448 | } |
442 | else if (action == ACTION_NONE) | 449 | else if (action == ACTION_NONE) |