From cd0cf5f2144af09892ade6f5020417ecf4c40423 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Wed, 20 Jun 2001 14:09:37 +0000 Subject: [PATCH] A bug was fixed that was related to dynamically changing lock sets. The record support put_array_info is called after the a put only if the put is successful. --- src/db/dbAccess.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index e83034cdd..e7bb0925c 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -1061,6 +1061,7 @@ long dbPutField(DBADDR *paddr,short dbrType,const void *pbuffer,long nRequest) *pdbAddr = dbaddr; /*structure copy*/; plink->value.pv_link.precord = precord; plink->value.pv_link.pvt = pdbAddr; + dbLockSetRecordLock(pdbAddr->precord); dbLockSetMerge(precord,pdbAddr->precord); } else {/*It is a CA link*/ char *pperiod; @@ -1188,7 +1189,7 @@ long dbPut(DBADDR *paddr,short dbrType,const void *pbuffer,long nRequest) status=(*dbPutConvertRoutine[dbrType][field_type]) (paddr,pbuffer,nRequest,no_elements,offset); /* update array info */ - if(prset && (prset->put_array_info) ) { + if(prset && (prset->put_array_info) && !status) { status= (*prset->put_array_info) (paddr,nRequest); }