QSRV: fix put w/ proc w/o values

A put with forced processing, but no values
will cause all mappings to process.
This commit is contained in:
Michael Davidsaver
2018-05-28 08:10:21 -07:00
parent 3338d1035d
commit 76c6473b6f

View File

@ -606,8 +606,11 @@ struct PVIFScalarNumeric : public PVIF
virtual pvd::Status get(const epics::pvData::BitSet& mask, proc_t proc) OVERRIDE FINAL
{
pvd::Status ret;
if(mask.logical_and(pvmeta.maskVALUEPut)) {
bool newval = mask.logical_and(pvmeta.maskVALUEPut);
if(newval) {
getValue(pvmeta.chan, pvmeta.value.get());
}
if(newval || proc==PVIF::ProcForce) {
ret = PVIF::get(mask, proc);
}
return ret;
@ -775,8 +778,11 @@ struct PVIFPlain : public PVIF
virtual pvd::Status get(const epics::pvData::BitSet& mask, proc_t proc)
{
pvd::Status ret;
if(mask.get(fieldOffset)) {
bool newval = mask.get(fieldOffset);
if(newval) {
getValue(channel, field.get());
}
if(newval || proc==PVIF::ProcForce) {
ret = PVIF::get(mask, proc);
}
return ret;