MantisBT - NetSurf
View Issue Details
0002056NetSurfRISC OS-specificpublic2014-01-16 16:112015-03-10 10:42
ReporterVincent Sanders 
Assigned ToSteve Fryatt 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version3.1 
Target VersionFixed in Version3.1 
Fixed in CI build #1665
Reported in CI build #1622
URL of problem page
Summary0002056: The RISC OS frotend re-enters gui_poll()
Descriptionriscos/wimp_event.c:722 calls the explicitly non-reentrant gui_poll() function

This is the only remaining instance of this as jmb removed all the rest.

The reason for causing a poll need to be examined and addressed as to why this call is present.

This also means the pui_poll() function is not static to riscos/gui.c
TagsNo tags attached.
Attached Files

Notes
(0000181)
Steve Fryatt   
2014-01-29 00:25   
The call is part of the process to open a pop-up menu in a formerly transient dialogue box by first making the dialogue static.

This requirement is caused by Message_MenusDeleted calling ro_gui_menu_closed() to handle the closure. ro_gui_menu_closed() forcibly closes the currently open menu; as Message_MenusDeleted is defined by RISC OS to arrive after the replacement menu has been created, the new pop-up menu is therefore closed immediately. The poll ensures that the message is cleared before the new menu opens; alternatively, the message handler probably does not need to close any menus?

A provisional fix is in the stevef/menus branch, but there's scope for further tidying of the menu handler to make it clearer what is going on.
(0000182)
Vincent Sanders   
2014-01-29 10:04   
jmb reviewed and mentioned if he had actually recalled why that logic looked like that he would have formulated much the same fix.

So its merged and the bugs closed :-)
(0000677)
Vincent Sanders   
2015-03-10 10:42   
Confirmed fixed in 3.1 release

Issue History
2014-01-16 16:11Vincent SandersNew Issue
2014-01-16 16:11Vincent SandersStatusnew => assigned
2014-01-16 16:11Vincent SandersAssigned To => Steve Fryatt
2014-01-29 00:25Steve FryattNote Added: 0000181
2014-01-29 10:04Vincent SandersFixed in CI build # => 1665
2014-01-29 10:04Vincent SandersNote Added: 0000182
2014-01-29 10:04Vincent SandersStatusassigned => resolved
2014-01-29 10:04Vincent SandersResolutionopen => fixed
2014-01-29 10:04Vincent SandersFixed in Version => 3.1
2015-03-10 10:42Vincent SandersNote Added: 0000677
2015-03-10 10:42Vincent SandersStatusresolved => closed