#12721: "filepanel" crashes on certain key-combos
----------------------------------+----------------------------
Reporter: humdinger | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: R1
Component: Kits/libtracker.so | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
----------------------------------+----------------------------
Comment (by pulkomandy):
More precisely, it seems there is an infinite recursion of this sequence:
{{{
959 0x7056be40 0x19b5596
BPrivate::BContainerWindow::MessageReceived(BMessage*) + 0x1ba
960 0x7056bf90 0x19f4d0b
BPrivate::TFilePanel::MessageReceived(BMessage*) + 0xa67
961 0x7056c080 0x1c382b7
BHandler::MessageReceived(BMessage*) + 0x37b
962 0x7056c1a0 0x1d1d58f BView::MessageReceived(BMessage*)
+ 0x33b
963 0x7056c290 0x1c382b7
BHandler::MessageReceived(BMessage*) + 0x37b
964 0x7056c3b0 0x1d1d58f BView::MessageReceived(BMessage*)
+ 0x33b
965 0x7056c4a0 0x1c382b7
BHandler::MessageReceived(BMessage*) + 0x37b
966 0x7056c5c0 0x1d1d58f BView::MessageReceived(BMessage*)
+ 0x33b
967 0x7056c6a0 0x1c81d1c
BControl::MessageReceived(BMessage*) + 0x300
968 0x7056c780 0x1cfb71c
BTextControl::MessageReceived(BMessage*) + 0x290
969 0x7056c870 0x1c382b7
BHandler::MessageReceived(BMessage*) + 0x37b
970 0x7056c990 0x1d1d58f BView::MessageReceived(BMessage*)
+ 0x33b
971 0x7056caa0 0x1d00ff7
BTextView::MessageReceived(BMessage*) + 0x84b
972 0x7056cc00 0x19b5596
BPrivate::BContainerWindow::MessageReceived(BMessage*) + 0x1ba
}}}
It looks like:
* Message is dispatched to a BTextView (971)
* The BTextView does not handle it, so it propagates up to BHandler (965)
* BHandler tries to propagate the message to the next handler (964)
[https://www.haiku-os.org/legacy-
docs/bebook/TheApplicationKit_Messaging.html#TheApplicationKit_Messaging_Inheritance]
* After a few hops through the handler chain, we end up in
BPrivate::TFilePanel::MessageReceived and the message is dispatched to the
window again, restarting the cycle.
--
Ticket URL: <https://dev.haiku-os.org/ticket/12721#comment:3>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.