From 7c9268a9641dc5f5b637c44d2f52a15b19f0baa9 Mon Sep 17 00:00:00 2001 From: Martin Williams Date: Thu, 20 May 2021 21:39:50 +0100 Subject: [PATCH] Timer::getTimerEvent() tries to realloc timerEventList --- source/driver-models/Timer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/driver-models/Timer.cpp b/source/driver-models/Timer.cpp index 3429b24c..d62f1ca5 100644 --- a/source/driver-models/Timer.cpp +++ b/source/driver-models/Timer.cpp @@ -78,8 +78,16 @@ TimerEvent *Timer::getTimerEvent() return &timerEventList[i]; } - // TODO: should try to realloc the list here. - return NULL; + // Try to realloc the list. + int extra = CODAL_TIMER_DEFAULT_EVENT_LIST_SIZE; + int newSize = eventListSize + extra; + TimerEvent *newList = (TimerEvent *) realloc( timerEventList, sizeof(TimerEvent) * newSize); + if ( newList == NULL) + return NULL; + timerEventList = newList; + memclr(timerEventList + eventListSize, sizeof(TimerEvent) * extra); + eventListSize = newSize; + return &timerEventList[ eventListSize - extra]; } void Timer::releaseTimerEvent(TimerEvent *event)