From 3ac74dd5a88d4a35e3ed014944db0cf7f5d61dfa Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 21 Jun 2001 18:07:25 +0000 Subject: [PATCH] keep private copy of pvname --- src/db/dbCa.c | 7 ++++++- src/db/dbCaPvt.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/db/dbCa.c b/src/db/dbCa.c index d5877dad0..457d9054d 100644 --- a/src/db/dbCa.c +++ b/src/db/dbCa.c @@ -95,11 +95,15 @@ void epicsShareAPI dbCaLinkInit(void) void epicsShareAPI dbCaAddLink( struct link *plink) { caLink *pca; + char *pvname; pca = (caLink*)dbCalloc(1,sizeof(caLink)); pca->lock = epicsMutexMustCreate(); epicsMutexMustLock(pca->lock); pca->plink = plink; + pvname = plink->value.pv_link.pvname; + pca->pvname = dbCalloc(1,strlen(pvname) +1); + strcpy(pca->pvname,pvname); plink->type = CA_LINK; plink->value.pv_link.pvt = pca; epicsMutexUnlock(pca->lock); @@ -671,13 +675,14 @@ void dbCaTask() free(pca->pgetString); free(pca->pputString); free(pca->pcaAttributes); + free(pca->pvname); epicsMutexDestroy(pca->lock); free(pca); continue; /*No other link_action makes sense*/ } if(link_action&CA_CONNECT) { status = ca_search_and_connect( - pca->plink->value.pv_link.pvname, + pca->pvname, &(pca->chid), connectionCallback,(void *)pca); if(status!=ECA_NORMAL) { diff --git a/src/db/dbCaPvt.h b/src/db/dbCaPvt.h index 514b239c0..11610b662 100644 --- a/src/db/dbCaPvt.h +++ b/src/db/dbCaPvt.h @@ -47,6 +47,7 @@ typedef struct caLink { ELLNODE node; struct link *plink; + char *pvname; chid chid; void *pgetNative; void *pputNative;