mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-12 22:22:55 +00:00
GEventLoop: Don't call process_unprocessed_messages() from itself.
This could be tail-call-optimized but it's not, so we end up overflowing the stack space if we recurse too many times. This was causing crashes when resizing Minesweeper.
This commit is contained in:
parent
c91b0d6b5f
commit
5dee5c325e
Notes:
sideshowbarker
2024-07-19 14:33:39 +09:00
Author: https://github.com/awesomekling
Commit: 5dee5c325e
2 changed files with 2 additions and 4 deletions
|
@ -316,9 +316,6 @@ void GEventLoop::process_unprocessed_bundles()
|
||||||
if (coalesced_resizes)
|
if (coalesced_resizes)
|
||||||
dbgprintf("Coalesced %d resizes\n", coalesced_resizes);
|
dbgprintf("Coalesced %d resizes\n", coalesced_resizes);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!m_unprocessed_bundles.is_empty())
|
|
||||||
process_unprocessed_bundles();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GEventLoop::drain_messages_from_server()
|
bool GEventLoop::drain_messages_from_server()
|
||||||
|
|
|
@ -43,7 +43,8 @@ private:
|
||||||
|
|
||||||
virtual void do_processing() override
|
virtual void do_processing() override
|
||||||
{
|
{
|
||||||
process_unprocessed_bundles();
|
while (!m_unprocessed_bundles.is_empty())
|
||||||
|
process_unprocessed_bundles();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wait_for_event();
|
void wait_for_event();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue