X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fcommon%2Fobject-profiler.cpp;h=47c771c378fc7171f1953b9f5d37f3bd17471d4d;hb=e83e2f5776c89439c95e49800f9a0e2ace2ed5e6;hp=7d86bf05af88b255e711fab9bc98a10bda754729;hpb=b46cd79dd6c74a453f5bcb852d51fbdc626eba85;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/common/object-profiler.cpp b/adaptors/common/object-profiler.cpp index 7d86bf0..47c771c 100644 --- a/adaptors/common/object-profiler.cpp +++ b/adaptors/common/object-profiler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,21 +57,18 @@ ObjectProfiler::~ObjectProfiler() void ObjectProfiler::DisplayInstanceCounts() { - InstanceCountMapIterator iter = mInstanceCountMap.begin(); - InstanceCountMapIterator end = mInstanceCountMap.end(); - - for( ; iter != end; iter++ ) + for( auto&& element : mInstanceCountContainer ) { - int memorySize = GetMemorySize(iter->first, iter->second); + int memorySize = GetMemorySize( element.first, element.second ); if( memorySize > 0 ) { LogMessage( Debug::DebugInfo, "%-30s: % 4d Memory MemorySize: ~% 6.1f kB\n", - iter->first.c_str(), iter->second, memorySize / 1024.0f ); + element.first.c_str(), element.second, memorySize / 1024.0f ); } else { LogMessage( Debug::DebugInfo, "%-30s: % 4d\n", - iter->first.c_str(), iter->second ); + element.first.c_str(), element.second ); } } LogMessage(Debug::DebugInfo, "\n"); @@ -94,15 +91,19 @@ void ObjectProfiler::OnObjectCreated(BaseHandle handle) mInstanceTypes.push_back(InstanceTypePair(&handle.GetBaseObject(), theType)); - InstanceCountMapIterator iter = mInstanceCountMap.find(theType); - if( iter == mInstanceCountMap.end() ) + bool found = false; + for( auto&& element : mInstanceCountContainer ) { - InstanceCountPair instanceCount(theType, 1); - mInstanceCountMap.insert(instanceCount); + if( element.first == theType ) + { + element.second++; + found = true; + } } - else + if( !found ) { - iter->second++; + InstanceCountPair instanceCount( theType, 1 ); + mInstanceCountContainer.emplace_back( instanceCount ); } } @@ -110,22 +111,25 @@ void ObjectProfiler::OnObjectDestroyed(const Dali::RefObject* object) { const BaseObject* baseObject = static_cast(object); - InstanceTypes::iterator end = mInstanceTypes.end(); - for( InstanceTypes::iterator iter = mInstanceTypes.begin(); iter != end; iter++) + const auto end = mInstanceTypes.end(); + for( auto iter = mInstanceTypes.begin(); iter != end; ++iter ) { if( iter->first == baseObject ) { - const std::string& theType = iter->second; + const auto& theType = iter->second; if( !theType.empty() ) { - InstanceCountMapIterator countIter = mInstanceCountMap.find(theType); - if( countIter != mInstanceCountMap.end() ) + auto&& countIter = std::find_if( mInstanceCountContainer.begin(), + mInstanceCountContainer.end(), + [theType] ( const InstanceCountPair& instance ) + { return instance.first == theType; } ); + if( countIter != mInstanceCountContainer.end() ) { - countIter->second--; + (*countIter).second--; } } mInstanceTypes.erase( iter ); - break; + return; } } }