diff options
author | Jeff Hao <jeffhao@google.com> | 2014-01-15 13:49:50 -0800 |
---|---|---|
committer | Jeff Hao <jeffhao@google.com> | 2015-04-27 18:54:52 -0700 |
commit | 848f70a3d73833fc1bf3032a9ff6812e429661d9 (patch) | |
tree | b0349b3a40aab5a915af491b100659a5ca9fbbf6 /runtime/class_linker_test.cc | |
parent | d14438f0c5071962be7fab572b54687d32d9d087 (diff) | |
download | art-848f70a3d73833fc1bf3032a9ff6812e429661d9.tar.gz art-848f70a3d73833fc1bf3032a9ff6812e429661d9.tar.bz2 art-848f70a3d73833fc1bf3032a9ff6812e429661d9.zip |
Replace String CharArray with internal uint16_t array.
Summary of high level changes:
- Adds compiler inliner support to identify string init methods
- Adds compiler support (quick & optimizing) with new invoke code path
that calls method off the thread pointer
- Adds thread entrypoints for all string init methods
- Adds map to verifier to log when receiver of string init has been
copied to other registers. used by compiler and interpreter
Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
Diffstat (limited to 'runtime/class_linker_test.cc')
-rw-r--r-- | runtime/class_linker_test.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc index 7bee98f8f1..6837de7b3b 100644 --- a/runtime/class_linker_test.cc +++ b/runtime/class_linker_test.cc @@ -394,8 +394,9 @@ struct CheckOffsets { bool error = false; - // Art method have a different size due to the padding field. - if (!klass->IsArtMethodClass() && !klass->IsClassClass() && !is_static) { + // Methods and classes have a different size due to padding field. Strings are variable length. + if (!klass->IsArtMethodClass() && !klass->IsClassClass() && !klass->IsStringClass() && + !is_static) { // Currently only required for AccessibleObject since of the padding fields. The class linker // says AccessibleObject is 9 bytes but sizeof(AccessibleObject) is 12 bytes due to padding. // The RoundUp is to get around this case. @@ -538,8 +539,6 @@ struct StringOffsets : public CheckOffsets<mirror::String> { StringOffsets() : CheckOffsets<mirror::String>(false, "Ljava/lang/String;") { addOffset(OFFSETOF_MEMBER(mirror::String, count_), "count"); addOffset(OFFSETOF_MEMBER(mirror::String, hash_code_), "hashCode"); - addOffset(OFFSETOF_MEMBER(mirror::String, offset_), "offset"); - addOffset(OFFSETOF_MEMBER(mirror::String, array_), "value"); }; }; |