Здравствуйте, уважаемые форумчане.
Столкнулся со странной проблемой:
Есть некий объект, у которого имеется слот. В котором создается объект другого класса ( = new CClassName(params)).
У этого другого объекта через конструктор заполняется небольшое количество свойств. Среди них есть свойства QString.
Затем сразу из этого же слота вызывается сигнал, в который передается этот объект класса с QString'ами.
Если обработчик этого сигнала делает что-либо с любым свойством типа QString, то после возврата к emit происходит Segmentation Fault.
Самое смешное, что если заполнить одно из свойств "ручками", присвоив некое значение прямо в слоте-генераторе сигнала, то при работе с таким свойством SegFault не происходит.
Сейчас для понятности попробую написать примерный код:
void CSomeObject::SomeSlot()
{
CDataObject* dataObject = new CDataObject(); // в конструкторе свойства dataObject заполняются
dataObject->someQStringProperty = "Example text";
emit onSomeObjectSignal(dataObject);
}
Вот это приемник сигнала onSomeObjectSignal:
void CSomeAcceptObject::onSomeObjectSignal(CDataObject* dataObject)
{
qDebug() << dataObject->SomeQStringProperty; // вот это выведется
qDebug() << dataObject->SomeAnotherQStringProperty; // вот на этом будет segmentation fault
}
Еще одна деталь: это происходит только со свойствами типа QString. Свойства с числовыми типами читаются без ошибок.
Подскажите, в чем может быть дело?