diff --git a/src/makeBaseApp/top/caServerApp/exServer.cc b/src/makeBaseApp/top/caServerApp/exServer.cc index 4cd221444..357ff098c 100644 --- a/src/makeBaseApp/top/caServerApp/exServer.cc +++ b/src/makeBaseApp/top/caServerApp/exServer.cc @@ -111,20 +111,18 @@ exServer::exServer ( const char * const pvPrefix, // exServer::~exServer() { - pvInfo *pPVI; - pvInfo *pPVAfter = - &exServer::pvList[NELEMENTS(exServer::pvList)]; - - // - // delete all pre-created PVs (eliminate bounds-checker warnings) - // - for (pPVI = exServer::pvList; pPVI < pPVAfter; pPVI++) { - pPVI->deletePV (); - } - + this->destroyAllPV (); this->stringResTbl.traverse ( &pvEntry::destroy ); } +void exServer::destroyAllPV () +{ + for ( unsigned i = 0; + i < NELEMENTS(exServer::pvList); i++ ) { + exServer::pvList[i].deletePV (); + } +} + // // exServer::installAliasName() // diff --git a/src/makeBaseApp/top/caServerApp/exServer.h b/src/makeBaseApp/top/caServerApp/exServer.h index 41151b7a2..2a5751847 100644 --- a/src/makeBaseApp/top/caServerApp/exServer.h +++ b/src/makeBaseApp/top/caServerApp/exServer.h @@ -286,6 +286,8 @@ public: class epicsTimer & createTimer (); void setDebugLevel ( unsigned level ); + void destroyAllPV (); + private: resTable < pvEntry, stringId > stringResTbl; epicsTimerQueueActive * pTimerQueue;