Merge "Removal of unnecessary set and map wrappers" into devel/master
authorDavid Steele <david.steele@samsung.com>
Fri, 26 May 2017 17:30:30 +0000 (17:30 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Fri, 26 May 2017 17:30:31 +0000 (17:30 +0000)
plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp
plugins/dali-script-v8/src/garbage-collector/garbage-collector.h

index ffc118d..cc7988d 100644 (file)
@@ -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
index 24cf638..d28faf3 100644 (file)
@@ -2,7 +2,7 @@
 #define __DALI_V8PLUGIN_GARBAGE_COLLECTOR_H__
 
 /*
- * 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.
  *
  */
 
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/dali-vector.h>
 
 // INTERNAL INCLUDES
 #include <interfaces/garbage-collector-interface.h>
-#include <dali/devel-api/common/set-wrapper.h>
-
 
 namespace Dali
 {
@@ -64,13 +64,12 @@ public:
    */
   virtual void GarbageCollect();
 
-
 private:
 
   /**
    * Map between dali wrapped object (void *)
    */
-  typedef std::set< BaseWrappedObject* > ObjectMap;
+  typedef Dali::Vector< BaseWrappedObject* > ObjectMap;
   ObjectMap mObjectMap;   ///< lookup
 
 };