Index: sources/model/MAbstractDynamic.cpp =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -r3561f79af1a92356eea01d5d0c3297c69d2ecdf2 --- sources/model/MAbstractDynamic.cpp (.../MAbstractDynamic.cpp) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/model/MAbstractDynamic.cpp (.../MAbstractDynamic.cpp) (revision 3561f79af1a92356eea01d5d0c3297c69d2ecdf2) @@ -73,6 +73,7 @@ } bool MAbstractDynamic::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + bool ok = true; int index = 0; // message data start position _data.mFieldDescriptor1 .value = 0; _data.mDataFieldU1 .value = 0; @@ -91,27 +92,27 @@ Gui::GuiAlarmDataTypes field1Type = static_cast(_data.mFieldDescriptor1.value); switch (field1Type) { case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; + ok = true ; goto lOut; case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : if (GetValue(vByteArray, index, _data.mDataFieldU1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : if (GetValue(vByteArray, index, _data.mDataFieldS1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : if (GetValue(vByteArray, index, _data.mDataFieldF1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : if (GetValue(vByteArray, index, _data.mDataFieldB1)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } default: return true; @@ -122,35 +123,40 @@ Gui::GuiAlarmDataTypes field2Type = static_cast(_data.mFieldDescriptor2.value); switch (field2Type) { case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_NONE : - return true; + ok = true ; goto lOut; case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_U32 : if (GetValue(vByteArray, index, _data.mDataFieldU2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_S32 : if (GetValue(vByteArray, index, _data.mDataFieldS2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_F32 : if (GetValue(vByteArray, index, _data.mDataFieldF2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } case Gui::GuiAlarmDataTypes::ALARM_DATA_TYPE_BOOL : if (GetValue(vByteArray, index, _data.mDataFieldB2)) break; - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } default: - return true; + ok = true; goto lOut; } - return true; + ok = true; goto lOut; + } - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } } - else { if(vIndex) *vIndex = index; return false; } - else { if(vIndex) *vIndex = index; return false; } + else { ok = false; goto lOut; } + else { ok = false; goto lOut; } + +lOut: + if ( vIndex ) *vIndex = index; + return ok; }