From 58b101739715b41be96b14acddaf9cd95306ea2a Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 31 Mar 2009 19:09:58 +0000 Subject: [PATCH] Ensure getOptions() gets called for structured DBR types. --- src/db/dbAccess.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index 5592a7f3c..e8e8ad558 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -361,6 +361,7 @@ static void getOptions(DBADDR *paddr,char **poriginal,long *options,void *pflin) } if( (*options) & DBR_TIME ) { epicsUInt32 *ptime = (epicsUInt32 *)pbuffer; + if(pfl!=NULL) { *ptime++ = pfl->time.secPastEpoch; *ptime++ = pfl->time.nsec; @@ -942,6 +943,10 @@ long epicsShareAPI dbGetField(DBADDR *paddr,short dbrType, char *pbuf = (char *)pbuffer; int maxlen; + if (options && (*options)) + getOptions(paddr, &pbuf, options, pflin); + if (nRequest && *nRequest == 0) goto done; + switch (dbrType) { case DBR_STRING: maxlen = MAX_STRING_SIZE - 1; @@ -959,9 +964,6 @@ long epicsShareAPI dbGetField(DBADDR *paddr,short dbrType, goto done; } - if (options && (*options)) - getOptions(paddr, &pbuf, options, pflin); - if (nRequest && *nRequest == 0) goto done; dbInitEntry(pdbbase, &dbEntry); status = dbFindRecord(&dbEntry, precord->name); if (!status) status = dbFindField(&dbEntry, pfldDes->name);