Patch: Crash: blocking JS alert and deleting a window

Koos Vriezen koos.vriezen at xs4all.nl
Tue Oct 22 19:42:32 BST 2002


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





More information about the kfm-devel mailing list