summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Linke <christian.linke@bmw.de>2013-03-05 13:58:27 +0100
committerChristian Linke <christian.linke@bmw.de>2013-03-05 13:58:27 +0100
commit7a78918ef0876128215502007597c7808c7fa340 (patch)
tree6444ffa2db32b93472ebae0e7842797f5f66a1bf
parent3503d13b45551160afb8dda9405cfded42fb61f1 (diff)
downloadaudiomanager-7a78918ef0876128215502007597c7808c7fa340.tar.gz
* online coding fixed overflow of handles
Signed-off-by: Christian Linke <christian.linke@bmw.de>
-rw-r--r--AudioManagerDaemon/src/CAmRoutingSender.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/AudioManagerDaemon/src/CAmRoutingSender.cpp b/AudioManagerDaemon/src/CAmRoutingSender.cpp
index 75d5052..d6ea25e 100644
--- a/AudioManagerDaemon/src/CAmRoutingSender.cpp
+++ b/AudioManagerDaemon/src/CAmRoutingSender.cpp
@@ -533,9 +533,13 @@ am_Error_e CAmRoutingSender::getListHandles(std::vector<am_Handle_s> & listHandl
am_Handle_s CAmRoutingSender::createHandle(const am_handleData_c& handleData, const am_Handle_e type)
{
am_Handle_s handle;
- handle.handle = ++mHandleCount; //todo: handle overflows here...
+ if (++mHandleCount>=1024) //defined by 10 bit (out if structure!)
+ mHandleCount=1;
+ handle.handle = mHandleCount;
handle.handleType = type;
mlistActiveHandles.insert(std::make_pair(handle, handleData));
+ if ((mlistActiveHandles.size()%100) == 0)
+ logInfo("CAmRoutingSender::createHandle warning: too many open handles, number of handles: ", mlistActiveHandles.size());
return (handle);
}