[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kfm-devel
Subject:    Re: Patch: Crash: blocking JS alert and deleting a window
From:       Koos Vriezen <koos.vriezen () xs4all ! nl>
Date:       2002-10-22 18:42:32
[Download RAW message or body]

On Tue, 22 Oct 2002, David Faure wrote:

> I think the fix for this crash would be to comment out the
> setOnHold(false) / direct call / setOnHold(true)
> and go back to the 0-timer solution. Can't remember any drawback of that \
> approach, except that so many 0-timers in the code are getting hard to \
> debug.

Still amazes me how far you can get without using threads this way.

> But here it's about popping up a msg box and if 'yes', a new window, so \
> it's rather unrelated to the rest.
> 
> My suggested patch, then:
> 
> Index: render_frames.cpp
> ===================================================================
> RCS file: /home/kde/kdelibs/khtml/rendering/render_frames.cpp,v
> retrieving revision 1.143
> diff -u -p -r1.143 render_frames.cpp
> - --- render_frames.cpp   2002/10/17 02:29:50     1.143
> +++ render_frames.cpp   2002/10/22 08:45:59
> @@ -767,10 +767,12 @@ bool RenderPartObject::partLoadingErrorN
> // Dissociate ourselves from the current event loop (to prevent crashes
> // due to the message box staying up)
> QTimer::singleShot( 0, this, SLOT( slotPartLoadingErrorNotify() ) );
> +#if 0
> Tokenizer *tokenizer = static_cast<DOM::DocumentImpl \
> *>(part->document().handle())->tokenizer(); if (tokenizer) \
> tokenizer->setOnHold( true ); slotPartLoadingErrorNotify();
> if (tokenizer) tokenizer->setOnHold( false );
> +#endif
> return false;
> }

This works for me with Dirk's workaround reverted.

Thanks for your fix,

Koos


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic