Summary: | Konqueror hangs when typing ")" char in web forms | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Gleb Litvjak <blaster999> |
Component: | kjs | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | faure, jan.toenjes |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Gleb Litvjak
2005-03-06 12:47:59 UTC
Freeze confirmed. JS is at fault here. I'm trying to get a backtrace... hold on (gdb) bt #0 KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:185 #1 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #2 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #3 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #4 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #5 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #6 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #7 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #8 0xb588b2be in KJS::NamedTagLengthDeterminer::operator() (this=0xbfd0e6a0, start=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:192 #9 0xb588b5db in KJS::HTMLDocument::hasProperty (this=0x84164c8, exec=0xbfd0eb60, p=@0x8612abc) at kjs_html.h:253 #10 0xb561168d in KJS::ResolveNode::evaluateReference (this=0x3, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:380 #11 0xb56134c2 in KJS::FunctionCallNode::evaluate (this=0x85efca0, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:809 #12 0xb5618203 in KJS::ExprStatementNode::execute (this=0x86395b0, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1953 #13 0xb561ebbe in KJS::SourceElementsNode::execute (this=0x8600958, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:3067 #14 0xb561800d in KJS::BlockNode::execute (this=0x85d68f0, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1915 #15 0xb561e0f9 in KJS::FunctionBodyNode::execute (this=0x85d68f0, exec=0xbfd0eb60) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:2919 #16 0xb5645e6c in KJS::DeclaredFunctionImp::execute (this=0x3, exec=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kjs/function.cpp:579 #17 0xb564533c in KJS::FunctionImp::call (this=0x858f8a8, exec=0x0, thisObj=@0x3, args=@0xbfd0ed10) at /home/thiago/programs/src/kde/kdelibs/kjs/function.cpp:354 #18 0xb564c749 in KJS::Object::call (this=0xbfd0e6a0, exec=0x8441b48, thisObj=@0xbfd0e6a0, args=@0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kjs/object.cpp:70 #19 0xb58ee287 in KJS::JSEventListener::handleEvent (this=0x8552568, evt=@0xbfd0edb0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_events.cpp:109 #20 0xb58ee5cf in KJS::JSLazyEventListener::handleEvent (this=0x8552568, evt=@0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_events.cpp:160 #21 0xb5778e58 in DOM::NodeImpl::handleLocalEvents (this=0x85529b8, evt=0x8861428, useCapture=false) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:652 #22 0xb5778ff3 in DOM::NodeImpl::dispatchGenericEvent (this=0x85527d0, evt=0x8861428) at qptrlist.h:174 #23 0xb5779425 in DOM::NodeImpl::dispatchEvent (this=0x85527d0, evt=0x8861428, exceptioncode=@0xbfd0e6a0, tempEvent=true) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:402 #24 0xb577a7a1 in DOM::NodeImpl::dispatchHTMLEvent (this=0xbfd0e6a0, _id=-1076828512, canBubbleArg=true, cancelableArg=false) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:483 #25 0xb57b1a95 in DOM::HTMLGenericFormElementImpl::onChange (this=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/html/html_formimpl.cpp:883 #26 0xb57b4be0 in DOM::HTMLTextAreaElementImpl::value (this=0x85527d0) at /home/thiago/programs/src/kde/kdelibs/khtml/html/html_formimpl.cpp:2466 #27 0xb593083e in DOM::HTMLTextAreaElement::value (this=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/dom/html_form.cpp:1030 #28 0xb58a6a25 in KJS::HTMLElement::getValueProperty (this=0x85e6208, exec=0xbfd0fef0, token=104) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_html.cpp:1398 #29 0xb58b12b4 in KJS::HTMLElement::tryGet (this=0x85e6208, exec=0xbfd0fef0, propertyName=@0xbfd0f970) at kjs_binding.h:189 #30 0xb586f000 in KJS::DOMObject::get (this=0xbfd0e6a0, exec=0xbfd0fef0, p=@0x3) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_binding.cpp:50 #31 0xb5652711 in KJS::Reference::getValue (this=0xbfd0f960, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/reference.cpp:143 #32 0xb5610892 in KJS::Node::evaluate (this=0xbfd0e6a0, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:122 #33 0xb561287a in KJS::AccessorNode2::evaluateReference (this=0x852fd88, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:648 #34 0xb561087c in KJS::Node::evaluate (this=0xbfd0e6a0, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:122 #35 0xb5615672 in KJS::RelationalNode::evaluate (this=0x852fdc8, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1317 #36 0xb5610903 in KJS::Node::toBoolean (this=0xbfd0e6a0, exec=0xbfd0fef0) at value.h:218 #37 0xb561849e in KJS::IfNode::execute (this=0x854f4b8, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1989 #38 0xb561ebbe in KJS::SourceElementsNode::execute (this=0x854f4f0, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:3067 #39 0xb561800d in KJS::BlockNode::execute (this=0x854f710, exec=0xbfd0fef0) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1915 (More stack frames follow...) #16279 0xb564c749 in KJS::Object::call (this=0xbfd0e6a0, exec=0xbfffdc40, thisObj=@0xbfd0e6a0, args=@0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kjs/object.cpp:70 #16280 0xb56138d4 in KJS::FunctionCallNode::evaluate (this=0x0, exec=0xbfffdc40) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:850 #16281 0xb5618203 in KJS::ExprStatementNode::execute (this=0x842fbd8, exec=0xbfffdc40) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1953 #16282 0xb561ebbe in KJS::SourceElementsNode::execute (this=0x8620fc8, exec=0xbfffdc40) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:3067 #16283 0xb561800d in KJS::BlockNode::execute (this=0x819c0f8, exec=0xbfffdc40) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:1915 #16284 0xb561e0f9 in KJS::FunctionBodyNode::execute (this=0x819c0f8, exec=0xbfffdc40) at /home/thiago/programs/src/kde/kdelibs/kjs/nodes.cpp:2919 #16285 0xb5645e6c in KJS::DeclaredFunctionImp::execute (this=0x3, exec=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kjs/function.cpp:579 #16286 0xb564533c in KJS::FunctionImp::call (this=0x8639968, exec=0x0, thisObj=@0x3, args=@0xbfffddf0) at /home/thiago/programs/src/kde/kdelibs/kjs/function.cpp:354 #16287 0xb564c749 in KJS::Object::call (this=0xbfd0e6a0, exec=0x8441b48, thisObj=@0xbfd0e6a0, args=@0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kjs/object.cpp:70 #16288 0xb58ee287 in KJS::JSEventListener::handleEvent (this=0x8552d28, evt=@0xbfffde90) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_events.cpp:109 #16289 0xb58ee5cf in KJS::JSLazyEventListener::handleEvent (this=0x8552d28, evt=@0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/khtml/ecma/kjs_events.cpp:160 #16290 0xb5778e58 in DOM::NodeImpl::handleLocalEvents (this=0x8552c90, evt=0x8615910, useCapture=false) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:652 #16291 0xb5778ff3 in DOM::NodeImpl::dispatchGenericEvent (this=0x85527d0, evt=0x8615910) at qptrlist.h:174 #16292 0xb5779425 in DOM::NodeImpl::dispatchEvent (this=0x85527d0, evt=0x8615910, exceptioncode=@0xbfd0e6a0, tempEvent=true) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:402 #16293 0xb5779b66 in DOM::NodeImpl::dispatchKeyEvent (this=0x85527d0, key=0xbfd0e6a0, keypress=false) at /home/thiago/programs/src/kde/kdelibs/khtml/xml/dom_nodeimpl.cpp:633 #16294 0xb56f8f51 in KHTMLView::dispatchKeyEventHelper (this=0x8477a48, _ke=0xbfffe750, keypress=false) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:1331 #16295 0xb56f9147 in KHTMLView::dispatchKeyEvent (this=0x8477a48, _ke=0xbfffe750) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:1309 #16296 0xb56fa129 in KHTMLView::keyReleaseEvent (this=0x8477a48, _ke=0xbfffe750) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:1664 #16297 0xb570506e in KHTMLView::eventFilter (this=0x8477a48, o=0x8759b98, e=0xbfffe750) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:1890 #16298 0xb74a2af7 in QObject::activate_filters () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16299 0xb74a2bc2 in QObject::event () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16300 0xb74e09aa in QWidget::event () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16301 0xb7609b42 in QTextEdit::event () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16302 0xb581813a in khtml::TextAreaWidget::event (this=0xbfd0e6b0, e=0x3) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_form.cpp:1539 #16303 0xb743f031 in QApplication::internalNotify () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16304 0xb743f661 in QApplication::notify () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16305 0xb7aa0706 in KApplication::notify (this=0xbffff050, receiver=0x8759b98, event=0xbfffe750) at /home/thiago/programs/src/kde/kdelibs/kdecore/kapplication.cpp:549 #16306 0xb73cd76e in QETWidget::translateKeyEvent () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16307 0xb73d4d76 in QApplication::x11ProcessEvent () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16308 0xb73e83b6 in QEventLoop::processEvents () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16309 0xb74566a7 in QEventLoop::enterLoop () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16310 0xb7456604 in QEventLoop::exec () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16311 0xb743e230 in QApplication::exec () from /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3 #16312 0xb5dcdb4f in kdemain (argc=-1076828512, argv=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdebase/konqueror/konq_main.cc:206 #16313 0x0804d9f6 in launch (argc=2, _name=0x8153e6c "konqueror", args=0x8153e80 "\001", cwd=0x0, envc=1, envs=0x8153e91 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0xbfd0e6a0 "\220��\004") at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:625 #16314 0x0804e1ed in handle_launcher_request (sock=8) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1189 #16315 0x0804e7a7 in handle_requests (waitForPid=0) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1392 #16316 0x0804f015 in main (argc=2, argv=0xbffff9b4, envp=0xbfd0e6a0) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1848 mmh, I'd think this is from r1.419 of html_formimpl.cpp "Fix for textarea onChange not emitted" value()is retrieved on onChange, but now value() itself calls onChange() when the value is dirty => infinite loop *** Bug 101031 has been marked as a duplicate of this bug. *** CVS commit by faure: Fixed infinite loop due to onChange from textareas. BUG: 100963 M +2 -2 html_formimpl.cpp 1.427 --- kdelibs/khtml/html/html_formimpl.cpp #1.426:1.427 @@ -2505,12 +2505,12 @@ DOMString HTMLTextAreaElementImpl::value RenderTextArea* renderArea = static_cast<RenderTextArea*>( m_render ); m_value = renderArea->text(); + m_dirtyvalue = false; // before onChange (#100963) onChange(); } else { m_value = defaultValue().string(); m_initialized = true; - } - m_dirtyvalue = false; } + } if ( m_value.isNull() ) return ""; The patch fixed the issue for me. Thanks! |