Fix array-put-object

Change CanPutArrayElementFromCode to take an object and a class, rather
than two classes.  This allows the generated code to skip the null check
on the element (I believe this was the plan all along, but I must have
forgotten and the current codegen was dereferencing the element to find it's
class without checking for NULL).

Change-Id: I11865e0e625ab0e800718398fd911733718e6ce9
diff --git a/src/thread.h b/src/thread.h
index c362a43..ef2fa12 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -206,7 +206,7 @@
   void (*pSet64Static)(uint32_t, const Method*, uint64_t);
   Object* (*pGetObjStatic)(uint32_t, const Method*);
   void (*pSetObjStatic)(uint32_t, const Method*, Object*);
-  void (*pCanPutArrayElementFromCode)(const Class*, const Class*);
+  void (*pCanPutArrayElementFromCode)(const Object*, const Class*);
   bool (*pInstanceofNonTrivialFromCode) (const Object*, const Class*);
   void (*pCheckCastFromCode) (const Class*, const Class*);
   Method* (*pFindInterfaceMethodInCache)(Class*, uint32_t, const Method*, struct DvmDex*);