From d6f8e9038c5a246448bcf05cc5a26b03ffb653b1 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 12 May 2020 08:51:51 -0700 Subject: [PATCH] getLinkValue() use dbInitEntryFromAddr() Called from dbGet(). Optimize hash table lookup and bsearch of array to O(0) assignment. --- modules/database/src/ioc/db/dbAccess.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/modules/database/src/ioc/db/dbAccess.c b/modules/database/src/ioc/db/dbAccess.c index 40d522b94..e5880511a 100644 --- a/modules/database/src/ioc/db/dbAccess.c +++ b/modules/database/src/ioc/db/dbAccess.c @@ -796,15 +796,12 @@ int dbLoadRecords(const char* file, const char* subs) static long getLinkValue(DBADDR *paddr, short dbrType, char *pbuf, long *nRequest) { - dbCommon *precord = paddr->precord; - dbFldDes *pfldDes = paddr->pfldDes; /* size of pbuf storage in bytes, including space for trailing nil */ int maxlen; DBENTRY dbEntry; - long status; long nReq = nRequest ? *nRequest : 1; - /* dbFindRecord() below will always succeed as we have a + /* below will always succeed as we have a * valid DBADDR, so no point to check again. * Request for zero elements always succeeds */ @@ -830,10 +827,8 @@ static long getLinkValue(DBADDR *paddr, short dbrType, return S_db_badDbrtype; } - dbInitEntry(pdbbase, &dbEntry); - status = dbFindRecord(&dbEntry, precord->name); - if (!status) status = dbFindField(&dbEntry, pfldDes->name); - if (!status) { + dbInitEntryFromAddr(paddr, &dbEntry); + { const char *rtnString = dbGetString(&dbEntry); strncpy(pbuf, rtnString, maxlen-1); @@ -843,7 +838,7 @@ static long getLinkValue(DBADDR *paddr, short dbrType, if(nRequest) *nRequest = nReq; } dbFinishEntry(&dbEntry); - return status; + return 0; } static long getAttrValue(DBADDR *paddr, short dbrType,