Fix invoke sequence and enable recursive Fibonacci

I was previously generating the wrong starting offset for the
resolved methods array.

Change-Id: Ia77800323df2872681b30f2869ef4b1131766f39
diff --git a/src/dex_cache.h b/src/dex_cache.h
index fdf179b..9e762e1 100644
--- a/src/dex_cache.h
+++ b/src/dex_cache.h
@@ -38,16 +38,19 @@
     return Get(kLocation)->AsString();
   }
 
-  static size_t StringsOffset() {
-    return kStrings * sizeof(Object*);
+  static MemberOffset StringsOffset() {
+    return MemberOffset(DataOffset().Int32Value() +
+                        kStrings * sizeof(Object*));
   }
 
-  static size_t FieldsOffset() {
-    return kFields * sizeof(Object*);
+  static MemberOffset FieldsOffset() {
+    return MemberOffset(DataOffset().Int32Value() +
+                        kFields * sizeof(Object*));
   }
 
-  static size_t MethodsOffset() {
-    return kMethods * sizeof(Object*);
+  static MemberOffset MethodsOffset() {
+    return MemberOffset(DataOffset().Int32Value() +
+                        kMethods * sizeof(Object*));
   }
 
   size_t NumStrings() const {