diff --git a/src/ioc/dbStatic/dbStaticRun.c b/src/ioc/dbStatic/dbStaticRun.c index 2ab477fd6..bd53bb13e 100644 --- a/src/ioc/dbStatic/dbStaticRun.c +++ b/src/ioc/dbStatic/dbStaticRun.c @@ -25,6 +25,7 @@ #define epicsExportSharedSymbols #include "dbBase.h" +#include "dbCommon.h" #include "dbStaticLib.h" #include "dbStaticPvt.h" #include "devSup.h" @@ -198,7 +199,7 @@ long dbAllocRecord(DBENTRY *pdbentry,const char *precordName) dbRecordNode *precnode = pdbentry->precnode; dbFldDes *pflddes; int i; - char *precord; + dbCommon *precord; char *pfield; if(!pdbRecordType) return(S_dbLib_recordTypeNotFound); @@ -210,7 +211,8 @@ long dbAllocRecord(DBENTRY *pdbentry,const char *precordName) return(S_dbLib_noRecSup); } precnode->precord = dbCalloc(1,pdbRecordType->rec_size); - precord = (char *)precnode->precord; + precord = precnode->precord; + precord->rdes = pdbRecordType; pflddes = pdbRecordType->papFldDes[0]; if(!pflddes) { epicsPrintf("dbAllocRecord pflddes for NAME not found\n"); @@ -220,13 +222,13 @@ long dbAllocRecord(DBENTRY *pdbentry,const char *precordName) epicsPrintf("dbAllocRecord: NAME(%s) too long\n",precordName); return(S_dbLib_nameLength); } - pfield = precord + pflddes->offset; + pfield = (char*)precord + pflddes->offset; strcpy(pfield,precordName); for(i=1; ino_fields; i++) { pflddes = pdbRecordType->papFldDes[i]; if(!pflddes) continue; - pfield = precord + pflddes->offset; + pfield = (char*)precord + pflddes->offset; pdbentry->pfield = (void *)pfield; pdbentry->pflddes = pflddes; pdbentry->indfield = i; diff --git a/src/ioc/misc/iocInit.c b/src/ioc/misc/iocInit.c index a61e81dd6..1f418223d 100644 --- a/src/ioc/misc/iocInit.c +++ b/src/ioc/misc/iocInit.c @@ -467,7 +467,6 @@ static void doInitRecord0(dbRecordType *pdbRecordType, dbCommon *precord, if (!prset) return; /* unlikely */ precord->rset = prset; - precord->rdes = pdbRecordType; precord->mlok = epicsMutexMustCreate(); ellInit(&precord->mlis);