FS#7311 - 64 bit simulator crashes when using the menus in some plugins.

Attached to Project: Rockbox
Opened by Nils Wallménius (nls) - Thursday, 14 June 2007, 20:07 GMT
Last edited by Nils Wallménius (nls) - Tuesday, 31 July 2007, 10:55 GMT
Task Type Bugs
Category Simulator
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


When using menus in some plugins in the simulator built for AMD64 it crashes with a segfault in settings.c line 424.

I have found two plugin- menues that cause this, the settings menu in the clock pluin and changing meter type in vu_meter with the new menu.

I am running ubuntu 7.04 on AMD64 and using gcc 4.1.2
the clock plugin is confirmed to be working correctly on 32 bit linux and in cygwin as well as on my player (h320)
THe vu_meter men u also works on my player but wasn't tested on 32 bit sims.
This task depends upon

Closed by  Nils Wallménius (nls)
Tuesday, 31 July 2007, 10:55 GMT
Reason for closing:  Fixed
Additional comments about closing:  Was caused by a naming conflict, the plugins had private structs called 'settings' that they used as parameters in the menu api which confused the settings code, why it only hit 64 bits, IDK...
Comment by Nils Wallménius (nls) - Sunday, 17 June 2007, 08:56 GMT
This crash is fixed by jdgordon's patch in the mailing list
Comment by Steve Bavin (pondlife) - Sunday, 17 June 2007, 16:46 GMT
Here's the patch copied from that ML post.
Comment by Steve Bavin (pondlife) - Monday, 30 July 2007, 22:09 GMT
Nils, can you confirm this has been fixed in SVN, since JdGordon's patch has now been committed...
Comment by Nils Wallménius (nls) - Monday, 30 July 2007, 23:27 GMT
hmm, nope still segfaults, on a different line this time though...

I get this for both the cases mentioned above with r14085

[Switching to Thread 1090525504 (LWP 19932)]
0x000000000041ffba in is_changed (setting_id=0) at settings.c:390
390 else if (*(int*)setting->setting == setting->default_val.int_)