This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#10723 - Rockbox hangs or panics while trying to clear settings on boot
Attached to Project:
Rockbox
Opened by Michael Chicoine (mc2739) - Sunday, 25 October 2009, 23:40 GMT+2
Last edited by Michael Chicoine (mc2739) - Thursday, 05 November 2009, 04:48 GMT+2
Opened by Michael Chicoine (mc2739) - Sunday, 25 October 2009, 23:40 GMT+2
Last edited by Michael Chicoine (mc2739) - Thursday, 05 November 2009, 04:48 GMT+2
|
DetailsThis bug was introduced with r23258 (works with r23257)
Steps to reproduce 1. hold record button while powering on 2. e280 locks up while displaying the verbose bootloader screen. I commented the splashf() on line 538 in apps/main.c and it did not lock and did reset the settings. |
This task depends upon
Closed by Michael Chicoine (mc2739)
Thursday, 05 November 2009, 04:48 GMT+2
Reason for closing: Fixed
Additional comments about closing: This was fixed in r23507
Thursday, 05 November 2009, 04:48 GMT+2
Reason for closing: Fixed
Additional comments about closing: This was fixed in r23507
NOTE: this may not be accurate for current svn.
1. apps/main.c line 536 calls splash()
2. apps/gui/splash.c line 225 calls splashf()
3. apps/gui/splash.c line 208 calls splash_internal()
4. apps/gui/splash.c line 64 calls viewport_set_defaults()
5. apps/gui/viewport.c line 170 calls viewport_set_fullscreen()
6. apps/gui/viewport.c line 116 calls sb_skin_get_info_vp()
I think this is where the problem is, sb_skin_init() has not yet been called and we are calling sb_skin_get_info_vp().
To test if this was the case, I set a bool if the settings cleared, moved the splash() after sb_skin_init() and used to bool to determine whether or not to splash the message. This worked properly.
At this point, I do not know the best way to fix this issue. Moving the splash works, but a warning would also need to be added stating that splash should not be used before sb_skin_init(). The more proper fix might be for sb_skin_get_info_vp() to know that sb_skin_init() has not happened yet and just return the standard fullscreen viewport.