From 61c0cff87d55768366fb6e9bcc3d8e8bc711a775 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Fri, 24 Sep 2004 15:44:08 +0000 Subject: [PATCH] fixed gnu warnings --- src/ca/searchTimer.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/ca/searchTimer.cpp b/src/ca/searchTimer.cpp index ef1cb6702..ea5d77a4a 100644 --- a/src/ca/searchTimer.cpp +++ b/src/ca/searchTimer.cpp @@ -358,17 +358,25 @@ void searchTimer::uninstallChan ( epicsGuard < epicsMutex > & cacGuard, nciu & chan ) { cacGuard.assertIdenticalMutex ( this->mutex ); - if ( chan.channelNode::listMember == - this->index + channelNode::cs_searchReqPending0 ) { + unsigned ulistmem = + static_cast ( chan.channelNode::listMember ); + unsigned uReqBase = + static_cast ( channelNode::cs_searchReqPending0 ); + if ( ulistmem == this->index + uReqBase ) { this->chanListReqPending.remove ( chan ); } - else if ( chan.channelNode::listMember == - this->index + channelNode::cs_searchRespPending0 ) { - this->chanListRespPending.remove ( chan ); - } - else { - throw std::runtime_error ( - "uninstalling channel search timer, but channel state is wrong" );; + else { + unsigned uRespBase = + static_cast ( + channelNode::cs_searchRespPending0 ); + if ( ulistmem == this->index + uRespBase ) { + this->chanListRespPending.remove ( chan ); + } + else { + throw std::runtime_error ( + "uninstalling channel search timer, but channel " + "state is wrong" ); + } } chan.channelNode::listMember = channelNode::cs_none; }