X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fdali-script-v8%2Fsrc%2Fgarbage-collector%2Fgarbage-collector.cpp;h=cc7988dcdeed2a4267c8c466f7e1dbd581f64a7b;hb=b0d0b451bd3414c8f502810f45fcacba2882d717;hp=ffc118dc67d35721a5e96a3584b1a35de0f20d55;hpb=59056922c2ee74a2aeaf5a2a15882c576a52856e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp b/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp index ffc118d..cc7988d 100644 --- a/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp +++ b/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 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. @@ -38,25 +38,31 @@ GarbageCollector::~GarbageCollector() void GarbageCollector::Register( BaseWrappedObject* object ) { - mObjectMap.insert( object ); + mObjectMap.PushBack( object ); }; void GarbageCollector::UnRegister( BaseWrappedObject* object ) { - mObjectMap.erase( object ); + for( ObjectMap::Iterator iter = mObjectMap.Begin(); iter != mObjectMap.End(); ++iter ) + { + if( *iter == object ) + { + mObjectMap.Erase( iter ); + return; + } + } } void GarbageCollector::GarbageCollect() { - for( ObjectMap::iterator iter = mObjectMap.begin(); iter != mObjectMap.end(); ) + for( ObjectMap::Iterator iter = mObjectMap.Begin(); iter != mObjectMap.End(); ++iter ) { BaseWrappedObject* object = *iter; - iter++; // iterator will be invalidated if we delete the object first. delete object; // object will call GarbageCollector.UnRegister } - + mObjectMap.Clear(); } } // V8Plugin