Added flags to dvmCloneObject

Updated the call site to use "don't track".

Change-Id: Ibd4b5a9d93b0043c3906ad86b9ae19d1bf70541d
diff --git a/vm/alloc/Alloc.c b/vm/alloc/Alloc.c
index f77a232..2358ea0 100644
--- a/vm/alloc/Alloc.c
+++ b/vm/alloc/Alloc.c
@@ -187,7 +187,7 @@
  * We use the size actually allocated, rather than obj->clazz->objectSize,
  * because the latter doesn't work for array objects.
  */
-Object* dvmCloneObject(Object* obj)
+Object* dvmCloneObject(Object* obj, int flags)
 {
     ClassObject* clazz;
     Object* copy;
@@ -208,7 +208,7 @@
         size = clazz->objectSize;
     }
 
-    copy = (Object*)dvmMalloc(size, ALLOC_DEFAULT);
+    copy = (Object*)dvmMalloc(size, flags);
     if (copy == NULL)
         return NULL;
 
diff --git a/vm/alloc/Alloc.h b/vm/alloc/Alloc.h
index 9747fc0..4222ee4 100644
--- a/vm/alloc/Alloc.h
+++ b/vm/alloc/Alloc.h
@@ -87,9 +87,9 @@
 /*
  * Create a copy of an object.
  *
- * The new object will be added to the "tracked alloc" table.
+ * Returns NULL and throws an exception on failure.
  */
-Object* dvmCloneObject(Object* obj);
+Object* dvmCloneObject(Object* obj, int flags);
 
 /*
  * Make the object finalizable.
diff --git a/vm/native/java_lang_Object.c b/vm/native/java_lang_Object.c
index f2adf52..12f701f 100644
--- a/vm/native/java_lang_Object.c
+++ b/vm/native/java_lang_Object.c
@@ -30,9 +30,8 @@
     JValue* pResult)
 {
     Object* thisPtr = (Object*) args[0];
-    Object* clone = dvmCloneObject(thisPtr);
+    Object* clone = dvmCloneObject(thisPtr, ALLOC_DONT_TRACK);
 
-    dvmReleaseTrackedAlloc(clone, NULL);
     RETURN_PTR(clone);
 }