summaryrefslogtreecommitdiffstats
path: root/runtime/class_linker.cc
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-03-21 11:21:29 -0700
committerIan Rogers <irogers@google.com>2014-03-21 11:25:56 -0700
commit62f0512bf6d9bc6141358bf22e93afa70dc58b1a (patch)
tree7fdc0b9be0df2da5ff2575862a24db5c10eae9dc /runtime/class_linker.cc
parent215f3e60cd97471c0843eae22a041c335e89071c (diff)
downloadart-62f0512bf6d9bc6141358bf22e93afa70dc58b1a.zip
art-62f0512bf6d9bc6141358bf22e93afa70dc58b1a.tar.gz
art-62f0512bf6d9bc6141358bf22e93afa70dc58b1a.tar.bz2
Improvements to Field.get/set.
Avoid unnecessary repeated computation in Field.get/set. Refactor FromReflectedField and FromReflectedMethod into common helpers in mirror::ArtField and mirror::ArtMethod, and make use of thereby avoiding transitions through JNI. Avoid JNI use from within FromReflectedField and FromReflectedMethod. Tidy up Field.get/set wrt moving collector support. Bug: 12189533 Change-Id: I643ab3474bade4abac3a3ae2b6e373b2bb0891c8
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r--runtime/class_linker.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index cef9954..08ea123 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -2314,26 +2314,26 @@ mirror::Class* ClassLinker::CreateArrayClass(Thread* self, const char* descripto
}
mirror::Class* ClassLinker::FindPrimitiveClass(char type) {
- switch (Primitive::GetType(type)) {
- case Primitive::kPrimByte:
+ switch (type) {
+ case 'B':
return GetClassRoot(kPrimitiveByte);
- case Primitive::kPrimChar:
+ case 'C':
return GetClassRoot(kPrimitiveChar);
- case Primitive::kPrimDouble:
+ case 'D':
return GetClassRoot(kPrimitiveDouble);
- case Primitive::kPrimFloat:
+ case 'F':
return GetClassRoot(kPrimitiveFloat);
- case Primitive::kPrimInt:
+ case 'I':
return GetClassRoot(kPrimitiveInt);
- case Primitive::kPrimLong:
+ case 'J':
return GetClassRoot(kPrimitiveLong);
- case Primitive::kPrimShort:
+ case 'S':
return GetClassRoot(kPrimitiveShort);
- case Primitive::kPrimBoolean:
+ case 'Z':
return GetClassRoot(kPrimitiveBoolean);
- case Primitive::kPrimVoid:
+ case 'V':
return GetClassRoot(kPrimitiveVoid);
- case Primitive::kPrimNot:
+ default:
break;
}
std::string printable_type(PrintableChar(type));