fix(PIVariant): add missing break in setValueFromString switch

Three complex type cases (pivComplexf, pivComplexd, pivComplexld)
lacked break statements, causing fallthrough to pivTime. Setting
a complex variant from string silently overwrote the value with
PITime::fromString(), corrupting the variant's type and data.
This commit is contained in:
2026-08-06 17:01:30 +03:00
committed by andrey
parent ef8fdb30f4
commit c3cd9496dd
+3 -3
View File
@@ -133,15 +133,15 @@ void PIVariant::setValueFromString(const PIString & v) {
case PIVariant::pivComplexf: { case PIVariant::pivComplexf: {
PIStringList sl = v.mid(1, v.size_s() - 2).split(';'); PIStringList sl = v.mid(1, v.size_s() - 2).split(';');
setValue(complexf(sl.size() > 0 ? sl[0].toFloat() : 0.f, sl.size() > 1 ? sl[1].toFloat() : 0.f)); setValue(complexf(sl.size() > 0 ? sl[0].toFloat() : 0.f, sl.size() > 1 ? sl[1].toFloat() : 0.f));
} } break;
case PIVariant::pivComplexd: { case PIVariant::pivComplexd: {
PIStringList sl = v.mid(1, v.size_s() - 2).split(';'); PIStringList sl = v.mid(1, v.size_s() - 2).split(';');
setValue(complexd(sl.size() > 0 ? sl[0].toDouble() : 0., sl.size() > 1 ? sl[1].toDouble() : 0.)); setValue(complexd(sl.size() > 0 ? sl[0].toDouble() : 0., sl.size() > 1 ? sl[1].toDouble() : 0.));
} } break;
case PIVariant::pivComplexld: { case PIVariant::pivComplexld: {
PIStringList sl = v.mid(1, v.size_s() - 2).split(';'); PIStringList sl = v.mid(1, v.size_s() - 2).split(';');
setValue(complexld(sl.size() > 0 ? sl[0].toLDouble() : 0.L, sl.size() > 1 ? sl[1].toLDouble() : 0.L)); setValue(complexld(sl.size() > 0 ? sl[0].toLDouble() : 0.L, sl.size() > 1 ? sl[1].toLDouble() : 0.L));
} } break;
case PIVariant::pivTime: { case PIVariant::pivTime: {
setValue(PITime::fromString(v)); setValue(PITime::fromString(v));
} break; } break;