diff --git a/modules/database/src/ioc/db/dbAccess.c b/modules/database/src/ioc/db/dbAccess.c index dfe3e0455..323131767 100644 --- a/modules/database/src/ioc/db/dbAccess.c +++ b/modules/database/src/ioc/db/dbAccess.c @@ -679,7 +679,7 @@ finish: void dbInitEntryFromAddr(struct dbAddr *paddr, DBENTRY *pdbentry) { struct dbCommon *prec = paddr->precord; - dbCommonPvt *ppvt = CONTAINER(prec, dbCommonPvt, common); + dbCommonPvt *ppvt = dbRec2Pvt(prec); memset((char *)pdbentry,'\0',sizeof(DBENTRY)); @@ -693,7 +693,7 @@ void dbInitEntryFromAddr(struct dbAddr *paddr, DBENTRY *pdbentry) void dbInitEntryFromRecord(struct dbCommon *prec, DBENTRY *pdbentry) { - dbCommonPvt *ppvt = CONTAINER(prec, dbCommonPvt, common); + dbCommonPvt *ppvt = dbRec2Pvt(prec); memset((char *)pdbentry,'\0',sizeof(DBENTRY)); diff --git a/modules/database/src/ioc/db/dbCommonPvt.h b/modules/database/src/ioc/db/dbCommonPvt.h index 3dfce8b27..e91de6f65 100644 --- a/modules/database/src/ioc/db/dbCommonPvt.h +++ b/modules/database/src/ioc/db/dbCommonPvt.h @@ -1,6 +1,8 @@ #ifndef DBCOMMONPVT_H #define DBCOMMONPVT_H +#include +#include #include "dbCommon.h" /** Base internal additional information for every record @@ -11,4 +13,10 @@ typedef struct dbCommonPvt { struct dbCommon common; } dbCommonPvt; +static EPICS_ALWAYS_INLINE +dbCommonPvt* dbRec2Pvt(struct dbCommon *prec) +{ + return CONTAINER(prec, dbCommonPvt, common); +} + #endif // DBCOMMONPVT_H diff --git a/modules/database/src/ioc/dbStatic/dbStaticRun.c b/modules/database/src/ioc/dbStatic/dbStaticRun.c index d3817ffc5..46cbf982a 100644 --- a/modules/database/src/ioc/dbStatic/dbStaticRun.c +++ b/modules/database/src/ioc/dbStatic/dbStaticRun.c @@ -179,7 +179,7 @@ long dbFreeRecord(DBENTRY *pdbentry) if(!pdbRecordType) return(S_dbLib_recordTypeNotFound); if(!precnode) return(S_dbLib_recNotFound); if(!precnode->precord) return(S_dbLib_recNotFound); - free(CONTAINER(precnode->precord, dbCommonPvt, common)); + free(dbRec2Pvt(precnode->precord)); precnode->precord = NULL; return(0); }