Revert "Reverts to track dalvik and libcore"

This reverts commit 53d6ff445706c390c541d10ef11f1b2f19ab14e8.

Change-Id: I7cfff5b532b0dd6ffef010732cd248f58236421b
diff --git a/src/java_lang_Class.cc b/src/java_lang_Class.cc
index 68b83f2..de5315a 100644
--- a/src/java_lang_Class.cc
+++ b/src/java_lang_Class.cc
@@ -168,6 +168,17 @@
     return JNI_FALSE;
 }
 
+jobject Class_getDex(JNIEnv* env, jobject javaClass) {
+  Class* c = Decode<Class*>(env, javaClass);
+
+  DexCache* dex_cache = c->GetDexCache();
+  if (dex_cache == NULL) {
+    return NULL;
+  }
+
+  return Runtime::Current()->GetClassLinker()->FindDexFile(dex_cache).GetDexObject(env);
+}
+
 jobject Class_getClassLoader(JNIEnv* env, jclass, jobject javaClass) {
   Class* c = Decode<Class*>(env, javaClass);
   Object* result = reinterpret_cast<Object*>(const_cast<ClassLoader*>(c->GetClassLoader()));
@@ -248,16 +259,6 @@
   return NULL;
 }
 
-jobject Class_getEnclosingConstructor(JNIEnv* env, jobject javaThis) {
-  UNIMPLEMENTED(WARNING) << "needs annotations";
-  return NULL;
-}
-
-jobject Class_getEnclosingMethod(JNIEnv* env, jobject javaThis) {
-  UNIMPLEMENTED(WARNING) << "needs annotations";
-  return NULL;
-}
-
 /*
  * private native String getNameNative()
  *
@@ -441,9 +442,7 @@
   NATIVE_METHOD(Class, getDeclaredFields, "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Field;"),
   NATIVE_METHOD(Class, getDeclaredMethods, "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Method;"),
   NATIVE_METHOD(Class, getDeclaringClass, "()Ljava/lang/Class;"),
-  //NATIVE_METHOD(Class, getEnclosingClass, "()Ljava/lang/Class;"),
-  NATIVE_METHOD(Class, getEnclosingConstructor, "()Ljava/lang/reflect/Constructor;"),
-  NATIVE_METHOD(Class, getEnclosingMethod, "()Ljava/lang/reflect/Method;"),
+  NATIVE_METHOD(Class, getDex, "()Lcom/android/dex/Dex;"),
   //NATIVE_METHOD(Class, getInnerClassName, "()Ljava/lang/String;"),
   //NATIVE_METHOD(Class, getModifiers, "(Ljava/lang/Class;Z)I"),
   NATIVE_METHOD(Class, getNameNative, "()Ljava/lang/String;"),