The siol field, if it is a constant, is now initialized

during record initialization.  In process the udf field
is now set to false if siol is not a constant link and
dbGetLink returns success.
This commit is contained in:
Janet B. Anderson
1996-10-30 17:42:00 +00:00
parent ac5e26f132
commit a3b1033015

View File

@@ -163,29 +163,13 @@ static long init_record(pwf,pass)
}
/* wf.siml must be a CONSTANT or a PV_LINK or a DB_LINK */
switch (pwf->siml.type) {
case (CONSTANT) :
if (pwf->siml.type == CONSTANT) {
recGblInitConstantLink(&pwf->siml,DBF_USHORT,&pwf->simm);
break;
case (PV_LINK) :
case (DB_LINK) :
break;
default :
recGblRecordError(S_db_badField,(void *)pwf,
"wf: init_record Illegal SIML field");
return(S_db_badField);
}
/* wf.siol must be a CONSTANT or a PV_LINK or a DB_LINK */
switch (pwf->siol.type) {
case (CONSTANT) :
case (PV_LINK) :
case (DB_LINK) :
break;
default :
recGblRecordError(S_db_badField,(void *)pwf,
"wf: init_record Illegal SIOL field");
return(S_db_badField);
if (pwf->siol.type == CONSTANT) {
recGblInitConstantLink(&pwf->siol,DBF_DOUBLE,&pwf->sval);
}
/* must have dset defined */
@@ -368,10 +352,10 @@ static long readValue(pwf)
status=dbGetLink(&(pwf->siol),
pwf->ftvl,pwf->bptr,0,&nRequest);
/* nord set only for db links: needed for old db_access */
if (pwf->siol.type == DB_LINK )pwf->nord = nRequest;
if (status==0){
pwf->udf=FALSE;
}
if (pwf->siol.type != CONSTANT ){
pwf->nord = nRequest;
if (status==0) pwf->udf=FALSE;
}
} else {
status=-1;
recGblSetSevr(pwf,SOFT_ALARM,INVALID_ALARM);