The problem is as follows.
There is a program written with Qt 4.4.0. She worked for a long time, no problem.
I rebuilt it with Qt 4.8.1. OS Ubuntu 12.04.
Gathered fine.
But now there are strange falls.
Example:
void XEventButton::buttonPressed() { XEventButtonProperty* property = static_cast<XEventButtonProperty*> propertyItem->getProperty()); dlg->setupForExec( propertyItem->getValue(), property->getMode() ); dlg->exec(); propertyItem->setValue( dlg->getValue() ); } The dlg->getValue() occurs in the dlg->getValue() function. The dlg pointer suddenly became 0 .
If I put brekpoint in this place, then dlg already non-zero, then it falls in the same line, but because propertyItem = 0x20 (propertyItem is a pointer).
Changed the code to this:
void XEventButton::buttonPressed() { XEventButtonProperty* property = static_cast<XEventButtonProperty*>(propertyItem->getProperty()); XEventButtonPropertyItem* tmp_prop_item = propertyItem; XEventDialog* tmp_dlg2 = dlg; dlg->setupForExec( propertyItem->getValue(), property->getMode() ); dlg->exec(); propertyItem = tmp_prop_item; dlg = tmp_dlg2; propertyItem->setValue( dlg->getValue() ); } and all The falls have stopped. What the heck? I do not understand what is going on.
There are some more incomprehensible things, but something tells me, the root of the problems is one.