Wrong AttributeValue version used in change event
It seems we're filling AttributeValue_5
for IDL 4+ in fire_change_event
.
This doesn't seem right.
https://gitlab.com/tango-controls/cppTango/-/blob/main/src/server/attribute.cpp?ref_type=heads#L4246
long vers = dev->get_dev_idl_version();
try
{
if(vers >= 4)
{
send_attr_5 = new Tango::AttributeValue_5{ZeroInitialize<Tango::AttributeValue_5>().value};
}
else if(vers == 4)
{
send_attr_4 = new Tango::AttributeValue_4{ZeroInitialize<Tango::AttributeValue_4>().value};
}
else
{
send_attr = new Tango::AttributeValue_3{ZeroInitialize<Tango::AttributeValue_3>().value};
}
}
catch(std::bad_alloc &)
{
TANGO_THROW_EXCEPTION(API_MemoryAllocation, "Can't allocate memory in server");
}