X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fqueue%2Fupdate-message-queue.cpp;h=f6f719384481cacb0d5458c4273d3eee0c567565;hb=a93869f74b472de57c6f383ad9d4f5b56c01b210;hp=c11674e95272995acfa4f99e4c36d65772a76017;hpb=3bcb54791a6777e77f02612a1f7916e83ef1c86f;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/queue/update-message-queue.cpp b/dali/internal/update/queue/update-message-queue.cpp index c11674e..f6f7193 100644 --- a/dali/internal/update/queue/update-message-queue.cpp +++ b/dali/internal/update/queue/update-message-queue.cpp @@ -20,7 +20,7 @@ // INTERNAL INCLUDES #include -#include +#include #include #include #include @@ -76,7 +76,11 @@ struct MessageQueue::Impl ~Impl() { // Delete the current buffer - delete currentMessageBuffer; + if( currentMessageBuffer ) + { + DeleteBufferContents( currentMessageBuffer ); + delete currentMessageBuffer; + } // Delete the unprocessed buffers const MessageBufferIter processQueueEndIter = processQueue.end(); @@ -237,7 +241,7 @@ bool MessageQueue::FlushQueue() return messagesToProcess; } -void MessageQueue::ProcessMessages() +void MessageQueue::ProcessMessages( BufferIndex updateBufferIndex ) { PERF_MONITOR_START(PerformanceMonitor::PROCESS_MESSAGES); @@ -253,7 +257,7 @@ void MessageQueue::ProcessMessages() { MessageBase* message = reinterpret_cast< MessageBase* >( iter.Get() ); - message->Process( mImpl->sceneGraphBuffers.GetUpdateBufferIndex() ); + message->Process( updateBufferIndex ); // Call virtual destructor explictly; since delete will not be called after placement new message->~MessageBase();