dbRec2Pvt()

This commit is contained in:
Michael Davidsaver
2019-01-27 18:17:53 -08:00
parent bc7ee94e2c
commit 5eb7da4595
3 changed files with 11 additions and 3 deletions

View File

@@ -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));

View File

@@ -1,6 +1,8 @@
#ifndef DBCOMMONPVT_H
#define DBCOMMONPVT_H
#include <compilerDependencies.h>
#include <dbDefs.h>
#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

View File

@@ -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);
}