From 4e4e55ca894ea7cbfcbca2502b237d6403f4b0a4 Mon Sep 17 00:00:00 2001 From: Hinko Kocevar Date: Wed, 19 Jun 2024 08:25:02 +0200 Subject: [PATCH] invoke dbFreeLinkContents() to clean up link related allocations --- .../database/src/ioc/dbStatic/dbStaticLib.c | 29 ++----------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/modules/database/src/ioc/dbStatic/dbStaticLib.c b/modules/database/src/ioc/dbStatic/dbStaticLib.c index 16cba90ce..70138e29c 100644 --- a/modules/database/src/ioc/dbStatic/dbStaticLib.c +++ b/modules/database/src/ioc/dbStatic/dbStaticLib.c @@ -1478,40 +1478,15 @@ long dbDeleteAliases(DBENTRY *pdbentry) return 0; } -static long dbDeleteRecordLinks(dbRecordType *rtyp, struct dbCommon *prec) +static void dbDeleteRecordLinks(dbRecordType *rtyp, struct dbCommon *prec) { short i; for (i=0; ino_links; i++) { dbFldDes *pflddes = rtyp->papFldDes[rtyp->link_ind[i]]; DBLINK *plink = (DBLINK *)(((char *)prec) + pflddes->offset); - - // TODO: How to handle different link types? - - // switch (plink->type) { - // /* constantStr is allowed to remain NULL if plink->text==NULL - // * constantStr==NULL has special meaning in recGblInitConstantLink() - // */ - // case CONSTANT: plink->value.constantStr = NULL; break; - // case PV_LINK: plink->value.pv_link.pvname = callocMustSucceed(1, 1, "init PV_LINK"); break; - // case JSON_LINK: plink->value.json.string = pNullString; break; - // case VME_IO: plink->value.vmeio.parm = pNullString; break; - // case CAMAC_IO: plink->value.camacio.parm = pNullString; break; - // case AB_IO: plink->value.abio.parm = pNullString; break; - // case GPIB_IO: plink->value.gpibio.parm = pNullString; break; - // case BITBUS_IO: plink->value.bitbusio.parm = pNullString; break; - // case INST_IO: plink->value.instio.string = pNullString; break; - // case BBGPIB_IO: plink->value.bbgpibio.parm = pNullString; break; - // case VXI_IO: plink->value.vxiio.parm = pNullString; break; - // } - - if(!plink->text) - continue; - - free(plink->text); - plink->text = NULL; + dbFreeLinkContents(plink); } - return 0; } long dbDeleteRecord(DBENTRY *pdbentry)