Jump to content

application crash on removing WidgetTreeBox items


photo

Recommended Posts

Posted

Try clean content of some node in WidgetTreeBox, when node is expanded - tree.setItemHidden(root, 0) - everything correct, otherwise - tree.setItemHidden(root, 1) - application crashes.

 

Test code:

Gui gui = engine.getGui();
WidgetWindow window;
WidgetTreeBox tree;

int createNode(string name, int count,int hide)     {
   int root = tree.addItem(name);
   for (int i=0; i<count; i++) {
       int pos = tree.addItem(format("item_%i",i));
       tree.setItemParent(pos,root);
   }
   tree.setItemHidden(root, hide);

   WidgetButton btn = new WidgetButton(gui,format("erase_%s",name));
   btn.setCallback(GUI_CLICKED,"erase",root);        
   window.addChild(btn,GUI_ALIGN_LEFT);

   return root;
}

void erase(int root) {
   log.message("erase [%s]\n",tree.getItemText(root) );
   tree.setItemHidden(root, 0); // this does not help =(
   for (int i=tree.getNumItemChilds(root)-1;i>=0; i--) {
       int pos = tree.getItemChild(root, i);
       tree.removeItem(pos);
   }    
}

int init() {
   engine.game.setPlayer(new PlayerSpectator());
   engine.app.setUpdate(1);

   window = new  WidgetWindow(gui);
   tree = new WidgetTreeBox(gui);
   window.addChild(tree,GUI_ALIGN_EXPAND);
   engine.gui.addChild(window,GUI_ALIGN_OVERLAP);

   createNode("A",3,0);    // works
   createNode("B",3,1);    // crash

   return 1;
}

post-61-078451200 1286785548_thumb.jpg

Posted

I have check your code sample it works fine. Please, see the attached screenshots.

Note that WidgetTreeBox::setItemHidden method expands or collapses a hierarchy of a given item.

For further testing the problem, please, give us the following information:

- OS

- log file

- builds version

post-6-069187300 1287034891_thumb.jpg

post-6-032666400 1287035372_thumb.jpg

Posted

Hi extaliones.

As one can see from your screenshots you expand node B before erasing, hold it collapsed - just press sequentially erase_A, erase_B.

Posted

Sorry, but I tried many combination and never get a crash. What builds version do you use?

Posted

I'm use DEBUG build of Unigine-20100907-src.

 

Hey, just wanted to say I tried running your code and did not have a crash using release build 2010-09-07 binary , Windows 7 64.

 

However, running it in Debug causes crash :)

Posted

Hey, just wanted to say I tried running your code and did not have a crash using release build 2010-09-07 binary , Windows 7 64.

 

However, running it in Debug causes crash :)

 

It is not crash indeed. This is failed assertation. Assert macro (both standart and unigine redefinition) does not any affect in release build (to be more precise: when defined NDEBUG macro). You are may be confused by the fact that assertaion failed but application runs after it without any problem (I think it is very uncommon situation). In more common case application crashes in release build too.

  • 3 weeks later...
×
×
  • Create New...