Project

General

Profile

Actions

Bug #1468

closed

WStackWidget core dump within wt-3.2.3

Added by Stefan Ruppert about 12 years ago. Updated about 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
10/13/2012
Due date:
% Done:

0%

Estimated time:

Description

After installing wt-3.2.3 and using it I got directly a core-dump during initialization of our Wt-App:

0x00007ffff734c12e in Wt::WContainerWidget::widget (this=<value optimized out>, index=-1)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WContainerWidget.C:282
282 /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WContainerWidget.C: Datei oder Verzeichnis nicht gefunden.
    in /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WContainerWidget.C
(gdb) where
#0  0x00007ffff734c12e in Wt::WContainerWidget::widget (this=<value optimized out>, index=-1)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WContainerWidget.C:282
#1  0x00007ffff7446c72 in Wt::WStackedWidget::setCurrentIndex (this=0x956ed0, index=-1, animation=<value optimized out>, 
    autoReverse=false) at /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WStackedWidget.C:121
#2  0x00007ffff73dd84f in Wt::WMenu::undoSelectVisual (this=0x957050)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WMenu.C:502
#3  0x00007ffff75d08ea in Wt::WebRenderer::learn (this=0x828ec8, slot=0x959040)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/web/WebRenderer.C:1690
#4  0x00007ffff74331c9 in Wt::EventSignalBase::processPreLearnStateless (this=<value optimized out>, learner=0x828ec8)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/Wt/WSignal.C:408
#5  0x00007ffff75d1a3d in Wt::WebRenderer::preLearnStateless (this=0x828ec8, app=0x8ae360, out=...)
    at /home/ruppert/work/wt/wt-3.2.3-rc1/src/web/WebRenderer.C:1663
#6  0x00007ffff75d282b in Wt::WebRenderer::serveMainAjax (this=0x828ec8, response=...)

It seems to me that there is a currentIndex_ != --1 is missing:

void WStackedWidget::setCurrentIndex(int index, const WAnimation& animation,
                     bool autoReverse)
{
   ...
   if (isRendered() && javaScriptDefined_)
      doJavaScript("$('#" + id() + "').data('obj').setCurrent("
           + widget(currentIndex_)->jsRef() + ");");
  }
}

It should be:

 if (isRendered() && javaScriptDefined_ && currentIndex_ != -1)
      doJavaScript("$('#" + id() + "').data('obj').setCurrent("
           + widget(currentIndex_)->jsRef() + ");");
Actions #1

Updated by Koen Deforche about 12 years ago

  • Status changed from New to InProgress
  • Assignee set to Koen Deforche
  • Target version set to 3.2.3

Hey Stefan,

Thanks for catching this. It seems that indeed you're right.

Regards,

koen

Actions #2

Updated by Koen Deforche about 12 years ago

  • Status changed from InProgress to Resolved
Actions #3

Updated by Koen Deforche about 12 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF