History log of /art/runtime/dex_file_verifier.cc
Revision Date Author Comments
31349988d7c44fe453bde9525fd10a371e543c28 18-May-2016 Roland Levillain <rpl@google.com> Enforce class definition ordering rules in v37 Dex files.

These new checks also reject classes extending or
implementing themselves directly or transitively within
a single Dex file.

(cherry picked from commit 621b5eab8eed7746925bca489114d706ad455572)

Bug: 28812524
Bug: 28797012
Bug: 28685551
Bug: 27682580

Change-Id: I51c43f8b4b6a7abaade63682411e61f21767f5d4
77143f76d59ac9ec92961447915bcbfc749a74f0 17-May-2016 Nicolas Geoffray <ngeoffray@google.com> Revert "Reject classes inheriting from themselves directly or transitively."

Bug: 28685551
Bug: 27682580
Bug: 28797012

This reverts commit 9de98ef4ad4311e85d124099b0b36ab81171ea20.

Change-Id: Ic4a21194ad602f4897f088a66672f3dd9f30f607
9de98ef4ad4311e85d124099b0b36ab81171ea20 12-May-2016 Roland Levillain <rpl@google.com> Reject classes inheriting from themselves directly or transitively.

Also enforce class definition ordering with respect to super
classes within a Dex file.

(cherry picked from commit 498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9)

Bug: 28685551
Bug: 27682580
Change-Id: If3eba782538eb4328d4b8a542236632379e7c050
d6bcae6d82d99727150f0e3c3d9cb3e9bc739d50 03-May-2016 Vladimir Marko <vmarko@google.com> Fix ProtoId ordering check in DexFileVerifier.

The code previously checked for kNoDexIndex16 as the type
list terminator. This is incorrect as we should not actually
see the kNoDexIndex16 in type lists in supported dex files.

To make sure that we don't see kNoDexIndex16, check the size
of the arrays with documented limits, i.e. type-ids and
proto-ids, see dex_file.h. In the ProtoId ordering check,
DCHECK() that we don't encounter kNoDexIndex16 and verify
that the previous list is not longer if the current list's
elements match.

Bug: 28580925

(cherry picked from commit 0ca8add2ae34c26291694ecc784d64f0cc1c1380)

Change-Id: Ied6dcbd8d04e3dfef5695dbd9b3a30a079038b2b
fd175b1020f1f65388a06c5fcbac78d78f6c645c 03-May-2016 Vladimir Marko <vmarko@google.com> Fix index checks for error strings in DexFileVerifier.

Bug: 28552165

(cherry picked from commit 59399abce0223e74af00193436e39e109d98dacb)

Change-Id: Ic7d687fbb20d5bd68a606c40fe60007b05f1c59b
8d8118a1e9fbb0413b7cf985630ffa318d0fbb7c 06-May-2016 Alex Light <allight@google.com> Make <clinit> verification stronger for v37+.

Preserve the verification behavior of M for v35 dex files. v37+ get
stronger behavior

Bug: 28605638
Change-Id: If1ff4abcc61e0945f924fe4e10e173c03b4cd1a9
(cherry picked from commit f0ecae7730b6c0145e0176cc619bdfba48201105)
f0fe04cbaf189702e9dad7252ed834cb4735c877 13-Apr-2016 Alex Light <allight@google.com> Allow private methods in interfaces.

Private methods may be generated in interfaces during compilation of
some default methods. Change the verifier to allow these methods.

Bug: 27999840

(cherry picked from commit b55f1ac873f9541f391625c13fe9129fbd38e74c)

Change-Id: Ib8120a8f6cb036021334d9af0ed78ae372974ecb
565bc96291623bf617aef40739247b224188fd16 31-Mar-2016 Alex Light <allight@google.com> Fix issued with non-public interface methods.

Some APK's ship with dex files containing non-public interface
methods. These would cause crashes on newer versions of ART due to
stricter verification of dex files. Make ART emit a warning but allow
this behavior.

Bug: 27928832

(cherry picked from commit d7c10c237bf2631630fac7982c3f374b1a27ed01)

Change-Id: Ia3689ee091aa154fb5954b1f6dd50c489128acce
d7c10c237bf2631630fac7982c3f374b1a27ed01 31-Mar-2016 Alex Light <allight@google.com> Fix issued with non-public interface methods.

Some APK's ship with dex files containing non-public interface
methods. These would cause crashes on newer versions of ART due to
stricter verification of dex files. Make ART emit a warning but allow
this behavior.

Bug: 27928832

Change-Id: Ia3689ee091aa154fb5954b1f6dd50c489128acce
76ed99d5ec208d5adcd63b41c2c290194ee0ecf7 29-Mar-2016 Andreas Gampe <agampe@google.com> ART: Postpone interface-related dex failure to version 37

For app compat, at least for now make the check for public-final-static
of interface members not fail on dex file versions less than 37. This
may be changed in future releases.

Bug: 27831184
Change-Id: If8ee50321298b951d4a78062c8eb583fec27394f
3a52b22cf71446dd47cc1a2775dd0aabbf5e96f7 20-Feb-2016 Andreas Gampe <agampe@google.com> ART: Check alignment of section offsets

Make sure the sections mentioned in the header are aligned according
to the Dalvik File Format specification.

Ensure the same for annotations.

Bug: 27275385
Bug: https://code.google.com/p/android/issues/detail?id=201384

(cherry picked from commit b512c0e5da0767d00a0ee9b7201668ab9977e21b)

Change-Id: Ifdd98377f8468e78c1c2198223ad58cab302dd37
b512c0e5da0767d00a0ee9b7201668ab9977e21b 20-Feb-2016 Andreas Gampe <agampe@google.com> ART: Check alignment of section offsets

Make sure the sections mentioned in the header are aligned according
to the Dalvik File Format specification.

Ensure the same for annotations.

Bug: 27275385
Bug: https://code.google.com/p/android/issues/detail?id=201384
Change-Id: Ifdd98377f8468e78c1c2198223ad58cab302dd37
a5c4493c37806f1b027c90f5ec3fe808adfdf3fe 09-Feb-2016 Andreas Gampe <agampe@google.com> ART: Give better error messages in dex-file verifier

Try to decode field and method names when an access-flag violation
has been found. This is not guaranteed to work, if the file is
broken enough.

Bug: 27064244
Bug: 27070841

(cherry picked from commit c9f0ba1a4a2c9366ffc2dc2f9c2d8d3f09bb2112)

Change-Id: Ie913076462e958d4f21b481631bc874cf6f67c0d
c9f0ba1a4a2c9366ffc2dc2f9c2d8d3f09bb2112 09-Feb-2016 Andreas Gampe <agampe@google.com> ART: Give better error messages in dex-file verifier

Try to decode field and method names when an access-flag violation
has been found. This is not guaranteed to work, if the file is
broken enough.

Bug: 27064244
Bug: 27070841
Change-Id: Ie913076462e958d4f21b481631bc874cf6f67c0d
9724c636467d56632a45fdf6353e3d57d1925501 07-Jan-2016 Neil Fuller <nfuller@google.com> Enable interface default methods by default.

This also enables interface static methods.

This removes the -Xexperimental:default-methods flag and all places
where we explicitly check for its presence.

Bug: 24618811

Change-Id: Icd91e377bd6e1a45a1645f810d15de1b0312e31d
97b113596576ee026c9d3e100e472e343bfda7fa 11-Dec-2015 Andreas Gampe <agampe@google.com> ART: Weaken dex file verifier abstract check

We decided to not reject dex files with non-abstract classes containing
abstract methods (even though that's broken code). Just log a warning
instead.

Reported by Nikolay Serdjuk.

Bug: 26143249
Change-Id: Iaf981dba70c7c4b9c844ad9f2806278072e3ed52
0f8e0723d67bd75125705b2707c36927beabd886 26-Oct-2015 Mathieu Chartier <mathieuc@google.com> Use HashMap for DexFileVerifier

Before:
2.51% std::map<unsigned int, unsigned short>::insert(...
0.72% malloc

After:
0.73% art::HashSet<std::__1::pair<unsigned int, unsigned short>::Insert(...
0.57% malloc

The allocation from HashSet is only 0.71% of the remaining 0.57% malloc time.
0.71% art::DexFileVerifier::CheckIntraSectionIterate(unsigned long, unsigned int, unsigned short)

Bug: 10921004

Change-Id: I85c60bf27fb2d9976b944fc15d8401904432dc22
eb7c144a6aff7da673ba53d501c46f00311d4d7f 31-Aug-2015 Alex Light <allight@google.com> Add initial default method support to Art

This commit starts the process of adding default methods and their
associated pieces to ART.

This adds full support for calling default methods using
invoke-interface and invoke-virtual on objects implementing the
interfaces. Verifier is changed to allow this when the runtime is
started with -Xexperimental:default-methods.

This also adds support for defining and calling static methods on
interface classes with invoke-static.

Directly calling overridden default methods using invoke-super is not
yet supported.

This adds 5 new run-tests for this functionality.

Bug: 24618811

Change-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03
1a9735701d0826adbc9d68cd3762b78f96499cfb 11-Sep-2015 Andreas Gampe <agampe@google.com> ART: Narrow parameter types.

Follow-up to e6215c0ec4b1bb71b722fdbf7e62eaf3be8a91d5. Those should
have been uint16_t.

Change-Id: I2cc13701eb937dad488bcf405a9a7b26eabb656e
e6215c0ec4b1bb71b722fdbf7e62eaf3be8a91d5 01-Sep-2015 Andreas Gampe <agampe@google.com> ART: Move access flags checking to dex file verifier

Actually implement all the access flags checking in the dex file
verifier. Add tests.

Change-Id: I8b797357831b588589d56d6e2e22f7b410f33008
6a8df53d90e47e3256faf7ff0caed0acf377b99b 12-Jul-2015 Anestis Bechtsoudis <anestis@census-labs.com> ART: Fix DexFileVerifier try_items OoO validation

DexFileVerifier::CheckIntraCodeItem() implements an out of order
validation for CodeItem try_items. try_items_size is validated for
sanity via CheckListSize() at dex_file_verifier.cc:800, although
handlers_size ULEB128 read (offset calculated from tries_size_) occurs
before at lines 797-798.

An out of bounds (wild) read will occur for invalid try_items_size at
parsed DEX file.

handlers_size read has been moved after try_items validation to resolve
this OoO issue.

Bug: 21307613
Bug: https://code.google.com/p/android/issues/detail?id=178592
Change-Id: I94d00819ee9a465f57ba9a1fdfdd356979e35ed7
ec96923620cb6f8a8f8205d89ea30f147e76e7fa 23-Jun-2015 Jeff Hao <jeffhao@google.com> Make dex file verifier check that indexes are increasing.

Note that this still allows duplicates.

Bug: 21868011

(cherry-picked from commit dd32833e24241508aa697d5349edf6aba9922434)

Change-Id: Ifcb2cda465d9451c16b122185a260ca8cebc41c5
dd32833e24241508aa697d5349edf6aba9922434 23-Jun-2015 Jeff Hao <jeffhao@google.com> Make dex file verifier check that indexes are increasing.

Note that this still allows duplicates.

Bug: 21868011
Change-Id: Ib0e91c816eccfaf3b0dac340c05ffd5dc4df17cc
a574b0e4772e57134538c3c098d7538d957edc90 05-Jun-2015 Jeff Hao <jeffhao@google.com> Make dex file verifier check for dups between direct and virtual methods.

The dex file verifier now rejects classes that have the same method index
in both direct and virtual methods.

Bug: 17878919
Change-Id: I431b4715e39ca2cce4df3ebef020b7ec0661a4c0
dd3208d3b2f4b78678a341f38a5cc7761c7fca91 19-Apr-2015 Logan Chien <tzuhsiang.chien@gmail.com> ART: Fix DBG_START_LOCAL verification.

The third ULEB128 of DBG_START_LOCAL and DBG_START_LOCAL_EXTENDED
entries should be interpreted as type_idx instead.

see also. dalvik/dx/src/com/android/dx/dex/file/DebugInfoEncoder.java

Change-Id: Ic0d52ed20cc2614acb9fa54b61095d1bd64f73fe
2cebb24bfc3247d3e9be138a3350106737455918 22-Apr-2015 Mathieu Chartier <mathieuc@google.com> Replace NULL with nullptr

Also fixed some lines that were too long, and a few other minor
details.

Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
fc787ecd91127b2c8458afd94e5148e2ae51a1f5 10-Oct-2014 Ian Rogers <irogers@google.com> Enable -Wimplicit-fallthrough.

Falling through switch cases on a clang build must now annotate the fallthrough
with the FALLTHROUGH_INTENDED macro.
Bug: 17731372

Change-Id: I836451cd5f96b01d1ababdbf9eef677fe8fa8324
13735955f39b3b304c37d2b2840663c131262c18 08-Oct-2014 Ian Rogers <irogers@google.com> stdint types all the way!

Change-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08
5182932cf6704b53e957f7b4be021fe505a55e22 26-Aug-2014 Andreas Gampe <agampe@google.com> ART: Change access flag behavior in verifier

Note: this moves the miranda modifier to the upper 16 bit.

Bug: 16161620

(cherry picked from commit 7fc8f90b7160e879143be5cfd6ea3df866398884)

Change-Id: I2f591d53b7d1559171e70aaaf22225d94b4882f5
7fc8f90b7160e879143be5cfd6ea3df866398884 26-Aug-2014 Andreas Gampe <agampe@google.com> ART: Change access flag behavior in verifier

Note: this moves the miranda modifier to the upper 16 bit.

Bug: 16161620
Change-Id: I2f591d53b7d1559171e70aaaf22225d94b4882f5
d4ae41fd7a4ed711277c61c0d7fd2a3759458728 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Tighten verifier list reading and offsets

Check offsets and sizes for header entries of a dex file.

Bug: 17347459

(cherry picked from commit 78d639ef4be3ad7314846e1e6c1261d7d30f83fa)

Change-Id: Ia1727c33dea51f7a8e345f3799f1ba414708239c
78d639ef4be3ad7314846e1e6c1261d7d30f83fa 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Tighten verifier list reading and offsets

Check offsets and sizes for header entries of a dex file.

Bug: 17347459
Change-Id: Ia1727c33dea51f7a8e345f3799f1ba414708239c
b061cc1dc41a976f5a620c19498d4b2f4d1675db 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix typo

Bug: 17327877

(cherry picked from commit b373ba1bf7e67d4dd8286df08065ac76aa8ac1ee)

Change-Id: I6132a8afb4b69c8d22a01b477f6f324c789ed666
b373ba1bf7e67d4dd8286df08065ac76aa8ac1ee 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix typo

Bug: 17327877
Change-Id: I6132a8afb4b69c8d22a01b477f6f324c789ed666
31a7a0c981c5f6244b2c8c3a0c39f3e1d41ce154 30-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix dex file verifier type-list handling

It is rare, but valid, to have an empty type list.

Bug: 17327877

(cherry picked from commit 277a7c7b4bb9c421380592fd3998d2e79e4035b3)

Change-Id: Ib3a8ff3e5ccd8fe7c04b1e97485bf3e6de72aa4d
277a7c7b4bb9c421380592fd3998d2e79e4035b3 30-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix dex file verifier type-list handling

It is rare, but valid, to have an empty type list.

Bug: 17327877
Change-Id: Ib3a8ff3e5ccd8fe7c04b1e97485bf3e6de72aa4d
5cac343e28fe28d4bc9ccc6db5cab38db1f2b59d 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check for duplicate class definitions in dex file verifier

Reject dex files that try to define two classes with the same type id.

Bug: 16016492

(cherry picked from commit 0ba238dcc21ae3544e1e8cb5d108725db8a1c134)

Change-Id: Ie04a684b41b50313449b87c5c3574e89f800e254
0ba238dcc21ae3544e1e8cb5d108725db8a1c134 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check for duplicate class definitions in dex file verifier

Reject dex files that try to define two classes with the same type id.

Bug: 16016492
Change-Id: I82cc99c00b3e3cb2b3d537ec14beed9049fe900f
50d1bc198b2e347d60df74c3b0c452e1f929dd2f 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Improve overflow detection in dex file verifier

Overflows were hidden by the design of the checks. Push all range
checks as lists, so we can explicitly check against the count.

Bug: 16017886
Change-Id: I0083f83006ef1e55518b0919dff319004b66dcb8
acc2bb693d83102f93007d7c4881a94bbcc3b9bb 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fail dex file verification on invalid access flags

Only allow standard java access flags in class-def items.

Bug: 16018234
Change-Id: I54e788817d5974faf7b3841cd01b9ca4568249c1
ffdf1a72132be9113c4444b5fba3e81c9050b120 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Improve overflow detection in dex file verifier

Overflows were hidden by the design of the checks. Push all range
checks as lists, so we can explicitly check against the count.

(cherry picked from commit 50d1bc198b2e347d60df74c3b0c452e1f929dd2f)

Bug: 16017886
Change-Id: I0083f83006ef1e55518b0919dff319004b66dcb8
0bab231e8215bae409cc104ea3ff2d2481074d5a 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fail dex file verification on invalid access flags

Only allow standard java access flags in class-def items.

(cherry picked from commit acc2bb693d83102f93007d7c4881a94bbcc3b9bb)

Bug: 16018234
Change-Id: I54e788817d5974faf7b3841cd01b9ca4568249c1
df10b32c4d0adfa86201169692eaa7ef038b642c 12-Jun-2014 Andreas Gampe <agampe@google.com> ART: Dex file verifier needs to check proto idx of method id.

Bug: 15570490
Change-Id: I4e90aea6e77711ee37d14d96a1fc9a2fbb980d94
bb836e14541d5424328182f3e20ce08c691d041e 14-Jun-2014 Andreas Gampe <agampe@google.com> ART: Dex file verifier can't blindly use GetDescriptor

The dex file verifier cannot call GetDescriptor without checking
the index first.

Bug: 15615908
Change-Id: Iec5e20b77aac3e6c25fb94b1b630d0846c0b8f33
5e31ddadd29325649260aa186e9ffa8ccdb370a2 13-Jun-2014 Andreas Gampe <agampe@google.com> ART: Clean up DexFile verifier API

Use an out arg instead of widening a return type.

Change-Id: I70744eec408b0c6f3487f168faf510869277daff
e3d5581266301e6a672af6233220037abf52fea1 11-Jun-2014 Ian Rogers <irogers@google.com> Fix host Mac build.

Ptr - ptr is an int not size_t on the Mac.
Fix use of assembly literal macro.
Remove forgotten about WITH_HOST_DALVIK.

Change-Id: I64db1927b2c6a145b6a96ffcc33d704914bba1bb
e09269ca05e3014e86198e9a2cf6092026fafefd 07-Jun-2014 Andreas Gampe <agampe@google.com> ART: Check indices in dex file verifier

The verifier did not check the indices into string, type, method
and field arrays.

Bug: 15467347
Change-Id: Ie04eb6f5a62ff528096a006fb2d3fd8f3773e0d8
ffddfdf6fec0b9d98a692e27242eecb15af5ead2 03-Jun-2014 Tim Murray <timmurray@google.com> DO NOT MERGE

Merge ART from AOSP to lmp-preview-dev.

Change-Id: I0f578733a4b8756fd780d4a052ad69b746f687a9
c647564845429bd709ed3338c13f15063c2f9fd9 27-May-2014 Brian Carlstrom <bdc@google.com> Workaround apparent clang compilation issue

Bug: 15014252

(cherry picked from commit ec80e7e1506e7099210399626b46cb8183534e70)

Change-Id: I159d66764749e41d2a97e0912f796085b4fdb6e1
ec80e7e1506e7099210399626b46cb8183534e70 27-May-2014 Brian Carlstrom <bdc@google.com> Workaround apparent clang compilation issue

Bug: 15014252
Change-Id: Ie8cae91053c143e73dc0196e538937aad9feb1bc
700a402244a1a423da4f3ba8032459f4b65fa18f 20-May-2014 Ian Rogers <irogers@google.com> Now we have a proper C++ library, use std::unique_ptr.

Also remove the Android.libcxx.mk and other bits of stlport compatibility
mechanics.

Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
507dfdd147c97bfbadebfd63584d094b6a4e7b47 16-May-2014 Ian Rogers <irogers@google.com> Compatibility layer to transition from UniquePtr to std::unique_ptr.

Use ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,
for the host switch to std::unique_ptr. For now the type remains called
UniquePtr.
Make dalvik compile with clang on the host, move its build to C++11.

Change-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12
8a6bbfc66e3cf01d4aa07ee08b515beee481d553 23-Jan-2014 Ian Rogers <irogers@google.com> 64bit cleanliness for the dex file verifier.

Change-Id: I08f55ca0185b8fc265afb2ca3f949c6d6ac7c5b6
92572be7f754c213e615a62955cc5f65ca8c0c0e 28-Nov-2013 Narayan Kamath <narayan@google.com> Use libziparchive for art zip processing.

This is part of the effort to move all VM & framework
zip parsing to a common implementation. This also has
the side effect of fixing various TODOs related to
crc32 checking.

bug: 10193060

Change-Id: I407f9ad5a94fc91d96ff43556adde00a00df1f14
8d31bbd3d6536de12bc20e3d29cfe03fe848f9da 13-Oct-2013 Ian Rogers <irogers@google.com> Throw IOException at source of failing to open a dex file.

Before is:
java.lang.ClassNotFoundException: Didn't find class "GCBench" on path: DexPathList[[zip file "/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar"],nativeLibraryDirectories=[/disk2/dalvik-dev/out/host/linux-x86/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
Suppressed: java.lang.ClassNotFoundException: GCBench
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 1 more
Caused by: java.lang.NoClassDefFoundError: Class "LGCBench;" not found
... 5 more
And after is:
java.lang.ClassNotFoundException: Didn't find class "GCBench" on path: DexPathList[[zip file "/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar"],nativeLibraryDirectories=[/disk2/dalvik-dev/out/host/linux-x86/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
Suppressed: java.io.IOException: Zip archive '/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar' doesn't contain classes.dex
at dalvik.system.DexFile.openDexFile(Native Method)
at dalvik.system.DexFile.<init>(DexFile.java:80)
at dalvik.system.DexFile.<init>(DexFile.java:59)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:268)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:235)
at dalvik.system.DexPathList.<init>(DexPathList.java:113)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:38)
at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:128)
at java.lang.ClassLoader.access$000(ClassLoader.java:65)
at java.lang.ClassLoader$SystemClassLoader.<clinit>(ClassLoader.java:81)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:137)
Suppressed: java.lang.ClassNotFoundException: GCBench
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 1 more
Caused by: java.lang.NoClassDefFoundError: Class "LGCBench;" not found
... 5 more

Also, move dex file verifier messages out of logs.
In the process the ClassLinker::dex_lock_ needed tidying to cover a smaller
scope. Bug 11301553.

Change-Id: I80058652e11e7ea63457cc01a0cb48afe1c15543
a67249065e4c9b3cf4a7c081d95a78df28291ee9 23-Sep-2013 Ian Rogers <irogers@google.com> Move hot utf routines into -inl.h.

Change-Id: I7050d8282a7e5870b2bf671d6867c57625e00ccc
02e25119b15a6f619f17db99f5d05124a5807ff3 15-Aug-2013 Mathieu Chartier <mathieuc@google.com> Fix up TODO: c++0x, update cpplint.

Needed to update cpplint to handle const auto.

Fixed a few cpplint errors that were being missed before.

Replaced most of the TODO c++0x with ranged based loops. Loops which
do not have a descriptive container name have a concrete type instead
of auto.

Change-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5
7934ac288acfb2552bb0b06ec1f61e5820d924a4 26-Jul-2013 Brian Carlstrom <bdc@google.com> Fix cpplint whitespace/comments issues

Change-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496
7940e44f4517de5e2634a7e07d58d0fb26160513 12-Jul-2013 Brian Carlstrom <bdc@google.com> Create separate Android.mk for main build targets

The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.

Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81