diff --git a/src/dex_file.cc b/src/dex_file.cc
index c17a225..7c54018 100644
--- a/src/dex_file.cc
+++ b/src/dex_file.cc
@@ -435,7 +435,6 @@
 }
 
 const DexFile::ClassDef* DexFile::FindClassDef(const StringPiece& descriptor) const {
-  CHECK(!descriptor.empty());
   Index::const_iterator it = index_.find(descriptor);
   if (it == index_.end()) {
     return NULL;
diff --git a/src/dex_verifier.cc b/src/dex_verifier.cc
index e0032b2..a800f20 100644
--- a/src/dex_verifier.cc
+++ b/src/dex_verifier.cc
@@ -3589,7 +3589,7 @@
   }
 
   DCHECK_LT(*start_guess, insns_size);
-  DCHECK(InsnGetWidth(insn_flags, *start_guess) != 0);
+  DCHECK_NE(InsnGetWidth(insn_flags, *start_guess), 0);
 
   return true;
 }
diff --git a/src/java_lang_Class.cc b/src/java_lang_Class.cc
index 3e80c6b..8ad59b4 100644
--- a/src/java_lang_Class.cc
+++ b/src/java_lang_Class.cc
@@ -51,7 +51,7 @@
   DCHECK(name->IsString());
   Object* signature_obj = Decode<Object*>(env, jsignature);
   DCHECK(signature_obj->IsArrayInstance());
-  // check that this is a Class[] by checkin that component type is Class
+  // check that this is a Class[] by checking that component type is Class
   // foo->GetClass()->GetClass() is an idiom for getting java.lang.Class from an arbitrary object
   DCHECK(signature_obj->GetClass()->GetComponentType() == signature_obj->GetClass()->GetClass());
   ObjectArray<Class>* signature = down_cast<ObjectArray<Class>*>(signature_obj);
@@ -80,8 +80,8 @@
     return AddLocalReference<jobject>(env, method);
   }
 
-  for (size_t i = 0; i < klass->NumVirtualMethods(); ++i) {
-    Method* method = klass->GetVirtualMethod(i);
+  for (size_t i = 0; i < klass->NumDirectMethods(); ++i) {
+    Method* method = klass->GetDirectMethod(i);
     if (!method->GetName()->Equals(name)) {
       continue;
     }
