khtml now crashes when I try to log in on www.voyages-sncf.com (by pressing Enter).
Valgrind trace below.
Basically, the lineedit gets deleted by a DeferredDelete event executed while the dialog box asking whether to save the form contents in kwallet is up.
Seems obvious, but then I wonder why it didn't happen before.
Sounds like some event handling code is still being executed in the deleted node after the whole page was deleted.
Anyone changed event handling recently?
==19957==
==19957== Invalid read of size 4
==19957== at 0x5020A86: QLineEdit::selectedText() const (qlineedit.cpp:973)
==19957== by 0x478D08E: KLineEdit::keyPressEvent(QKeyEvent*) (klineedit.cpp:809)
==19957== by 0x7481E84: khtml::RenderWidget::EventPropagator::sendEvent(QEvent*) (render_replaced.cpp:711)
==19957== by 0x7482A93: khtml::RenderWidget::handleEvent(DOM::EventImpl const&) (render_replaced.cpp:858)
==19957== by 0x740E82A: DOM::HTMLGenericFormElementImpl::defaultEventHandler(DOM::EventImpl*) (html_formimpl.cpp:994)
==19957== by 0x74173B7: DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) (html_formimpl.cpp:1805)
==19957== by 0x73C6336: DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398)
==19957== by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) (dom_nodeimpl.cpp:342)
==19957== by 0x73C52B7: DOM::NodeImpl::dispatchKeyEvent(QKeyEvent*, bool) (dom_nodeimpl.cpp:578)
==19957== by 0x7347228: KHTMLView::dispatchKeyEventHelper(QKeyEvent*, bool) (khtmlview.cpp:1380)
==19957== by 0x7347332: KHTMLView::dispatchKeyEvent(QKeyEvent*) (khtmlview.cpp:1336)
==19957== by 0x734C2FF: KHTMLView::keyPressEvent(QKeyEvent*) (khtmlview.cpp:1465)
==19957== by 0x73465C2: KHTMLView::eventFilter(QObject*, QEvent*) (khtmlview.cpp:1924)
==19957== by 0x4F45CC5: QObject::activate_filters(QEvent*) (qobject.cpp:903)
==19957== by 0x4F45D43: QObject::event(QEvent*) (qobject.cpp:735)
==19957== by 0x4F8323B: QWidget::event(QEvent*) (qwidget.cpp:4659)
==19957== by 0x5028D62: QLineEdit::event(QEvent*) (qlineedit.cpp:1412)
==19957== by 0x748E03F: khtml::LineEditWidget::event(QEvent*) (render_form.cpp:419)
==19957== by 0x4EDF07F: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635)
==19957== by 0x4EDF411: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2392)
==19957== by 0x4A433A6: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550)
==19957== by 0x4E70F54: QApplication::sendSpontaneousEvent(QObject*, QEvent*) (qapplication.h:499)
==19957== by 0x4E652E4: QETWidget::translateKeyEvent(_XEvent const*, bool) (qapplication_x11.cpp:5501)
==19957== by 0x4E6B267: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3488)
==19957== by 0x4E841D2: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:192)
==19957== by 0x4EF75FA: QEventLoop::enterLoop() (qeventloop.cpp:198)
==19957== by 0x4EF751D: QEventLoop::exec() (qeventloop.cpp:145)
==19957== by 0x4EDDD12: QApplication::exec() (qapplication.cpp:2758)
==19957== by 0x408986F: kdemain (konq_main.cc:206)
==19957== by 0x8048691: main (kdeinit_konqueror.cpp:2)
==19957== Address 0x623F59C is 148 bytes inside a block of size 204 free'd
==19957== at 0x4020CC7: operator delete(void*) (vg_replace_malloc.c:244)
==19957== by 0x748E811: khtml::LineEditWidget::~LineEditWidget() (render_form.cpp:322)
==19957== by 0x4F45DE1: QObject::event(QEvent*) (qobject.cpp:750)
==19957== by 0x4F8323B: QWidget::event(QEvent*) (qwidget.cpp:4659)
==19957== by 0x5028D62: QLineEdit::event(QEvent*) (qlineedit.cpp:1412)
==19957== by 0x748E03F: khtml::LineEditWidget::event(QEvent*) (render_form.cpp:419)
==19957== by 0x4EDF07F: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635)
==19957== by 0x4EDFB72: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2523)
==19957== by 0x4A433A6: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550)
==19957== by 0x40A4BD2: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:496)
==19957== by 0x4EE031E: QApplication::sendPostedEvents(QObject*, int) (qapplication.cpp:3270)
==19957== by 0x4EE0425: QApplication::sendPostedEvents() (qapplication.cpp:3181)
==19957== by 0x4E84122: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:144)
==19957== by 0x4EF75FA: QEventLoop::enterLoop() (qeventloop.cpp:198)
==19957== by 0x4EDDD3E: QApplication::enter_loop() (qapplication.cpp:2793)
==19957== by 0x50FB8AF: QDialog::exec() (qdialog.cpp:432)
==19957== by 0x481F193: KMessageBox::createKMessageBox(KDialogBase*, QPixmap, QString const&, QStringList const&, QString const&, bool*, int, QString const&, QMessageBox::Icon) (kmessagebox.cpp:309)
==19957== by 0x481F55C: KMessageBox::createKMessageBox(KDialogBase*, QMessageBox::Icon, QString const&, QStringList const&, QString const&, bool*, int, QString const&) (kmessagebox.cpp:146)
==19957== by 0x74169F5: DOM::HTMLFormElementImpl::submit() (html_formimpl.cpp:628)
==19957== by 0x7416EF2: DOM::HTMLFormElementImpl::prepareSubmit() (html_formimpl.cpp:553)
==19957== by 0x7416F73: DOM::HTMLInputElementImpl::activate() (html_formimpl.cpp:1819)
==19957== by 0x74173A5: DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) (html_formimpl.cpp:1802)
==19957== by 0x73C6336: DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398)
==19957== by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) (dom_nodeimpl.cpp:342)
==19957== by 0x73C6029: DOM::NodeImpl::dispatchUIEvent(int, int) (dom_nodeimpl.cpp:550)
==19957== by 0x73C6409: DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:402)
==19957== by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) (dom_nodeimpl.cpp:342)
==19957== by 0x73C6A05: DOM::NodeImpl::dispatchMouseEvent(QMouseEvent*, int, int) (dom_nodeimpl.cpp:532)
==19957== by 0x740E61A: DOM::HTMLInputElementImpl::click() (html_formimpl.cpp:1372)
==19957== by 0x74176A3: DOM::HTMLFormElementImpl::submitFromKeyboard() (html_formimpl.cpp:488)
==19957== by 0x748DF12: khtml::RenderLineEdit::slotReturnPressed() (render_form.cpp:506)
==19957== by 0x748DF5D: khtml::RenderLineEdit::qt_invoke(int, QUObject*) (render_form.moc:330)
==19957== by 0x4F48B7C: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356)
==19957== by 0x4F49617: QObject::activate_signal(int) (qobject.cpp:2325)
==19957== by 0x52F0560: QLineEdit::returnPressed() (moc_qlineedit.cpp:225)
==19957== by 0x5029224: QLineEdit::keyPressEvent(QKeyEvent*) (qlineedit.cpp:1543)
==19957== by 0x478D07C: KLineEdit::keyPressEvent(QKeyEvent*) (klineedit.cpp:807)
==19957== by 0x7481E84: khtml::RenderWidget::EventPropagator::sendEvent(QEvent*) (render_replaced.cpp:711)
==19957== by 0x7482A93: khtml::RenderWidget::handleEvent(DOM::EventImpl const&) (render_replaced.cpp:858)
==19957== by 0x740E82A: DOM::HTMLGenericFormElementImpl::defaultEventHandler(DOM::EventImpl*) (html_formimpl.cpp:994)
==19957== by 0x74173B7: DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) (html_formimpl.cpp:1805)
==19957== by 0x73C6336: DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398)
==19957== by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) (dom_nodeimpl.cpp:342)
==19957== by 0x73C52B7: DOM::NodeImpl::dispatchKeyEvent(QKeyEvent*, bool) (dom_nodeimpl.cpp:578)
==19957== by 0x7347228: KHTMLView::dispatchKeyEventHelper(QKeyEvent*, bool) (khtmlview.cpp:1380)
==19957== by 0x7347332: KHTMLView::dispatchKeyEvent(QKeyEvent*) (khtmlview.cpp:1336)
==19957== by 0x734C2FF: KHTMLView::keyPressEvent(QKeyEvent*) (khtmlview.cpp:1465)
==19957== by 0x73465C2: KHTMLView::eventFilter(QObject*, QEvent*) (khtmlview.cpp:1924)
==19957== by 0x4F45CC5: QObject::activate_filters(QEvent*) (qobject.cpp:903)
==19957== by 0x4F45D43: QObject::event(QEvent*) (qobject.cpp:735)
--
David Faure, faure@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).