[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