2008/10/8 andrey mirtchovski
<mirtchovski@gmail.com>
while looking around for information on the RC strangeness i triggered
a bug with rio: if the last window on the "hidden" stack disappears
_while_ the third mouse button menu is opened, then upon attempting to
unhide the window without releasing the mouse button in between will
result in a read addr fault in 'wunhide()'
here's a stack trace and error message:
acid: lstk()
wunhide(h=0x1)+0x30 /sys/src/cmd/rio/rio.c:1099
w=0x1768e0
i=0x0
unhide(h=0x6)+0x27 /sys/src/cmd/rio/rio.c:1129
button3menu()+0x97 /sys/src/cmd/rio/rio.c:686
mousethread()+0x2c4 /sys/src/cmd/rio/rio.c:589
sending=0x0
scrolling=0x0
moving=0x0
winput=0xdaf40
xy=0x1f6
inside=0x1
tmp=0x0
w=0xdaf40
oin=0x929e0
band=0x1
r=0xfefefefe
to reproduce:
open a rio window
run "window -hide 'sleep 10'"
click the third mouse button (to bring the "New" menu)
wait 10 seconds (you will know that 10 seconds have passed if you move
the mouse over the last hidden window and the highlighted text appears
to be gibberish)
unhide the last hidden window by releasing the third mouse button
while pointing at it in the menu
if you simply release the third mouse button and bring the menu up
again you will see that the window has disappeared. it is only a bug
when rio isn't given a chance to refresh the third button menu.
cheers: andrey