fixed buffer issue

This commit is contained in:
Martino Ferrari
2026-02-06 12:11:03 +01:00
parent 5372d87202
commit fc56cf7a56

View File

@@ -167,7 +167,7 @@ bool JAMessageGAM::Initialise(MARTe::StructuredDataI &data) {
level++; level++;
uint32 n_inputs = data.GetNumberOfChildren(); uint32 n_inputs = data.GetNumberOfChildren();
comparators = new comparator_t[n_inputs]; comparators = new comparator_t[n_inputs];
StreamString buffer; StreamString strbuffer;
TypeDescriptor td; TypeDescriptor td;
for (uint32 i = 0; ok && i < n_inputs; i++) { for (uint32 i = 0; ok && i < n_inputs; i++) {
ok = data.MoveToChild(i); ok = data.MoveToChild(i);
@@ -177,32 +177,33 @@ bool JAMessageGAM::Initialise(MARTe::StructuredDataI &data) {
break; break;
} }
level++; level++;
ok = data.Read("Type", buffer); ok = data.Read("Type", strbuffer);
if (!ok) { if (!ok) {
REPORT_ERROR(ErrorManagement::ParametersError, REPORT_ERROR(ErrorManagement::ParametersError,
"Missing mandatory field Type from InputSignals[%lu]", "Missing mandatory field Type from InputSignals[%lu]",
i); i);
break; break;
} }
td = TypeDescriptor::GetTypeDescriptorFromTypeName(buffer.Buffer()); td = TypeDescriptor::GetTypeDescriptorFromTypeName(strbuffer.Buffer());
ok = (td != InvalidType) && (is_float(td) || is_int(td)); ok = (td != InvalidType) && (is_float(td) || is_int(td));
if (!ok) { if (!ok) {
REPORT_ERROR(ErrorManagement::ParametersError, REPORT_ERROR(ErrorManagement::ParametersError,
"Wrong value for field Type from InputSignals[%lu]", i); "Wrong value for field Type from InputSignals[%lu]", i);
break; break;
} }
ok = data.Read("Comparator", buffer); strbuffer = "";
ok = data.Read("Comparator", strbuffer);
if (!ok) { if (!ok) {
REPORT_ERROR( REPORT_ERROR(
ErrorManagement::ParametersError, ErrorManagement::ParametersError,
"Missing mandatory field Comparator from InputSignals[%lu]", i); "Missing mandatory field Comparator from InputSignals[%lu]", i);
break; break;
} }
ok = parse_comparator(buffer, comparators[i].comparator); ok = parse_comparator(strbuffer, comparators[i].comparator);
if (!ok) { if (!ok) {
REPORT_ERROR(ErrorManagement::ParametersError, REPORT_ERROR(ErrorManagement::ParametersError,
"Non Valid Comparator `%s` from InputSignals[%lu]", "Non Valid Comparator `%s` from InputSignals[%lu]",
buffer, i); strbuffer.Buffer(), i);
break; break;
} }
if (is_int(td)) { if (is_int(td)) {