summaryrefslogtreecommitdiffstats
path: root/runtime/class_linker.cc
Commit message (Collapse)AuthorAgeFilesLines
* DO NOT MERGE Add locking to prevent races between setting class methods and ↵Mathieu Chartier2015-10-081-12/+25
| | | | | | | | | | | | | | | | marking There was a race condition between VisitNativeRoots and threads which were updating the lengths and pointers of the direct or virtual methods of classes. For example: The thread doing VisitNativeRoots could see a null pointer with a non 0 length if another thread had changed the length but not the pointer. The fix is already in master, do not merge. Bug: 24270063 Change-Id: Id7280b9507b95703820aedb6c5fee49966dabe27
* Do not try to compile resource-only dex files.Richard Uhler2015-06-241-5/+10
| | | | | | | | | | | | | This changes behavior in the case where we are asked to load a dex file that does not exist or has no classes.dex entry. Previously we would run dex2oat, which would log an error message and fail. Now we skip running dex2oat, we report the DexOptStatus as kNoDexOptNeeded, and we do not try to fall back to the missing original dex files. Bug: 21722039 Change-Id: I90b1f4165138daac57bb9d7a354319005652c593
* Fix another miranda method moving GC bugMathieu Chartier2015-06-221-20/+26
| | | | | | | | Need to copy miranda methods over before we allocate the new vtable or else we may have stale miranda gc roots. Bug: 21664466 Change-Id: Ib3e415bb9e7df7abfa18c98fe01f790fa39622dc
* Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-devDavid Srbecky2015-06-191-10/+3
|\
| * ART stack unwinding fixes for libunwind/gdb/lldb.David Srbecky2015-06-191-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dex2oat can already generate unwinding and symbol information which allows tools to create backtrace of mixed native and Java code. This is a cherry pick from aosp/master which fixes several issues. Most notably: * It enables generation of ELF-64 on 64-bit systems (in dex2oat, C compilers already produce ELF-64). Libunwind requires ELF-64 on 64-bit systems for backtraces to work. * It enables loading of ELF files with dlopen. This is required for libunwind to be able to generate backtrace of current process (i.e. the process requesting backtrace of itself). * It adds unit test to test the above (32 vs 64 bit, in-proces vs out-of-process, application code vs framework code). * Some other fixes or clean-ups which should not be of much significance but which are easier to include to make the important CLs cherry-pick cleanly. This is squash of the following commits from aosp/master: 7381010 ART: CFI Test e1bbed2 ART: Blacklist CFI test for non-compiled run-tests aab9f73 ART: Blacklist CFI test for JIT 4437219 ART: Blacklist CFI test for Heap Poisoning a3a49fe Switch to using ELF-64 for 64-bit architectures. 297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture. 24981a1 Set correct size of PT_PHDR ELF segment. 1a146bf Link .dynamic to .dynstr 67a0653 Make some parts of ELF more (pointer) aligned. f50fa82 Enable 64-bit CFI tests. 49e1fab Use dlopen to load oat files. 5dedb80 Add more logging output for dlopen. aa03870 Find the dlopened file using address rather than file path. 82e73dc Release dummy MemMaps corresponding to dlopen. 5c40961 Test that we can unwind framework code. 020c543 Add more log output to the CFI test. 88da3b0 ART: Fix CFI test wrt/ PIC a70e5b9 CFI test: kill the other process in native code. ad5fa8c Support generation of CFI in .debug_frame format. 90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write. 97dabb7 Fix build breakage in dwarf_test. 388d286 Generate just single ARM mapping symbol. f898087 Split .oat_patches to multiple sections. 491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again). 8363c77 Add --generate-debug-info flag and remove the other two flags. 461d72a Generate debug info for core.oat files. Bug: 21924613 Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
* | Add missing EndAssertNoThreadSuspensionMathieu Chartier2015-06-171-0/+3
|/ | | | | Bug: 21872507 Change-Id: I20f9920e4a12511ce498c252bca955d82a4f4102
* Move image intern table into imageMathieu Chartier2015-06-111-1/+1
| | | | | | | | | | | | | Previously we recreated this intern table during runtime startup. This added 50-100ms of boot time. Fixed bug where we didn't copy over hashcodes into the image. Deleted some stale code. Bug: 20727525 Bug: 19569780 Change-Id: I08959e9aa2a73cedb52f393033e2ffea3a26e76b
* Revert "Revert "Turn off duplicate-classes checking""Andreas Gampe2015-06-031-0/+7
| | | | | | | This reverts commit 18a1827a159f1b235f3fcc934f428059185f550e. Bug: 21333911 Change-Id: I8cb96efbf7151b238f3ee137a938b20ddfaf0ebc
* ART: Prune FindArrayClass cache in image writerAndreas Gampe2015-06-031-3/+8
| | | | | | | | | | The ClassLinker cache speeds up FindArrayClass requests, but all entries are roots. It is possible that an entry is a non-image class when creating the boot image, artificially keeping the class around. Bug: 21596650 Change-Id: Ief9b439945d0e293a3cb5dcddfeb189b5e174f06
* Update IMT for stale miranda methodsMathieu Chartier2015-06-021-0/+7
| | | | | | | Fixes occasional crash in dex2oat. Bug: 19264997 Change-Id: Icb1a323d8c44fa40309486e17aec56d2c2588e67
* Move mirror::ArtMethod to nativeMathieu Chartier2015-06-021-584/+697
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 (cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d Fix some ArtMethod related bugs Added root visiting for runtime methods, not currently required since the GcRoots in these methods are null. Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes --trace run-tests 005, 044. Fixed optimizing compiler bug where we used a normal stack location instead of double on ARM64, this fixes the debuggable tests. TODO: Fix JDWP tests. Bug: 19264997 Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3 ART: Fix casts for 64-bit pointers on 32-bit compiler. Bug: 19264997 Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457 Fix JDWP tests after ArtMethod change Fixes Throwable::GetStackDepth for exception event detection after internal stack trace representation change. Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of proxy method. Bug: 19264997 Change-Id: I363e293796848c3ec491c963813f62d868da44d2 Fix accidental IMT and root marking regression Was always using the conflict trampoline. Also included fix for regression in GC time caused by extra roots. Most of the regression was IMT. Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to detached thread. EvaluateAndApplyChanges: From ~2500 -> ~1980 GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots Bug: 19264997 Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0 Fix bogus image test assert Previously we were comparing the size of the non moving space to size of the image file. Now we properly compare the size of the image space against the size of the image file. Bug: 19264997 Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a [MIPS64] Fix art_quick_invoke_stub argument offsets. ArtMethod reference's size got bigger, so we need to move other args and leave enough space for ArtMethod* and 'this' pointer. This fixes mips64 boot. Bug: 19264997 Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
* Fix double-exception in super-class method validation.Vladimir Marko2015-05-291-43/+118
| | | | | | | | Bug: 19333589 (cherry picked from commit d5e5a0e61b5b1fe0aaa7edc25a08adebd5a92353) Change-Id: If394a678ef6271c1119dac3f959773f23e789c56
* ART: Clean up arm64 kNumberOfXRegisters usage.Vladimir Marko2015-05-261-0/+1
| | | | | | | | | | | | | | | | | | | | | Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 (cherry picked from commit 80afd02024d20e60b197d3adfbb43cc303cf29e0) Change-Id: I905257a21de90b5860ebe1e39563758f721eab82
* Merge "Fix for potential moving GC bugs around proxy class." into mnc-devHiroshi Yamauchi2015-05-221-64/+68
|\
| * Fix for potential moving GC bugs around proxy class.Hiroshi Yamauchi2015-05-221-64/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Handlerize proxy_class which is live across multiple allocation points in ClassLinker::CreateProxyClass(). - In ClassLinker::CreateProxyClass(), insert a proxy class into the class table before creating ArtFields for it (and update it later in LinkClass()) because the field roots (ArtField::declaring_class_) won't be updated by GC unless the class is in the class table. If GC happens before they are updated by FixupTemporaryDeclaringClass() from LinkClass(), FixupTemporaryDeclaringClass() may not update the field roots correctly because the old class may already be moved but the fields roots may not. Reduce a window of time where the fields roots could be stale. - In ClassLinker::LinkClass(), directly wrap a new class in a handle to avoid a window of time where new_class may be potentially stale. - Print more diagnostic info about the holder of the field upon a mark sweep invalid ref crash. - Add an additional sanity check in Field::GetArtField(). Bug: 20557050 Change-Id: I9ad32d304922da96b7e1fad262d97de21cbac776
* | Revert "DO NOT MERGE ART: Turn off duplicate-classes checking"Andreas Gampe2015-05-211-7/+0
|/ | | | | | | This reverts commit aafcfca5fe545365ef377fff2897b8a908f03e71. Bug: 21333911 Change-Id: Ibbc6b1be8bebc1d0ab9c5955b34eb89f40577baa
* DO NOT MERGE ART: Turn off duplicate-classes checkingAndreas Gampe2015-05-201-0/+7
| | | | | Bug: 21333911 Change-Id: I9832526a6d2996aadb459e3ec0930cbaf151478a
* Fix debuggable compiler flag detection for secondary dex filesSebastien Hertz2015-05-191-12/+29
| | | | | | | | | | | | | | | | | | Compiles secondary dex files like the primary dex file: if it has been compiled with the --debuggable flag, compile secondary dex files with the --debuggable flag too. Therefore, dex files loaded at runtime are compiled the same way as dex files compiled at install time on the classpath (excluding the boot image that is not compiled debuggable). Also adds debuggable key in the oat header and bump the oat version. Bug: 20944228 (cherry picked from commit 0de1133ba600f299b3d67938f650720d9f859eb2) Change-Id: If6b2236e7fe547cc421f57b573043748018d3ae0
* ART: Allow oat files with duplicates classes in corner caseAndreas Gampe2015-04-291-35/+47
| | | | | | | | | | | | | When the oat file is actually an odex file, that is, a preopted /system app, then it is impossible to fall back to the original APK, as that has been stripped. When it looks like it will be impossible to successfully open the original dex location, grudgingly allow to open the found oat file, even if it has duplicate classes, but warn accordingly. Bug: 20697582 Change-Id: I1dd459563d977a2e77806eacd03e49334d5b1f14
* Replace String CharArray with internal uint16_t array.Jeff Hao2015-04-271-2/+8
| | | | | | | | | | | | 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
* ART: Duplicate-classes cleanupAndreas Gampe2015-04-241-1/+14
| | | | | | | Disable old test. Improve collision warning message. Add a comment about the algorithm. Change-Id: Ibd29d79565732162150aebd7fe08d0895ccf3d79
* ART: Check for duplicate classes when loading oat filesAndreas Gampe2015-04-241-2/+186
| | | | | | | | | | | | | | | | | | | | | | | | Oat files are usually produced standalone, and the compilers take advantage of any information they get. It is thus possible that when compile-time and runtime class-path are not the same, classes are resolved differently and optimized code is incorrect. This is a very conservative check, scanning the complete class tables of dex files. In case any duplicate class is found, the new oat file will be rejected and the original dex files will be used in interpreted mode. A possible refinement to this is actual tracking of the compile-time class-path instead. That is however significantly complicated by the DexFile API and the non-standard uses it allows. An alternative for both optimized code and correct resolution is native multidex. Apps should switch to multidex and benefit from the optimization as well as the shift of all compile time to install time. Split APKs are currently compiled separately, but it is a goal to change that install flow to simulated multidex. Change-Id: Ib9e0db5091e060e3bb2c0e5e6c007430becbfc21
* ART: Fix re-throwing failures of non-convention errorsAndreas Gampe2015-04-221-3/+29
| | | | | | | | | | | | While it is convention that Throwable subclasses should have a constructor with a String argument, that is not rigorously enforced. So if a static initializer throws an error that omits that constructor, we must not provide a message when trying to throw again. Bug: 20495321 Bug: 20497840 Change-Id: Ia4334fa24223750f90a8f2732f1eb1e738575e8d
* Replace NULL with nullptrMathieu Chartier2015-04-221-2/+2
| | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* Add AbstractMethod, Constructor, MethodMathieu Chartier2015-04-211-112/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves functionality to ART from libcore. Precursor to moving ArtMethods to native. Mostly performance improvements. N5 perf before (irrelevant results removed): Class_getConstructor 962.87 =========== Class_getDeclaredMethod 2394.37 ============================ Class_getMethod 2509.20 ============================== Class_newInstance 1999.81 ======================= Method_invokeI 1439.02 ================= Method_invokePreBoxedI 1415.82 ================ Method_invokeStaticI 1456.24 ================= Method_invokeStaticPreBoxedI 1427.32 ================= Method_invokeStaticV 814.47 ========= Method_invokeV 816.56 ========= After: benchmark ns linear runtime Class_getConstructor 1302.04 ================ Class_getDeclaredMethod 1459.01 ================== Class_getMethod 1560.40 =================== Class_newInstance 2029.94 ========================= Method_invokeI 1312.89 ================ Method_invokePreBoxedI 1255.01 =============== Method_invokeStaticI 1289.13 =============== Method_invokeStaticPreBoxedI 1196.52 ============== Method_invokeStaticV 790.82 ========= Method_invokeV 791.73 ========= Performance improvements are more than just fixing regressions introduced in: http://android-review.googlesource.com/#/c/146069/ Bug: 19264997 Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
* Merge "Remove suspend point from field loading"Mathieu Chartier2015-04-141-3/+3
|\
| * Remove suspend point from field loadingMathieu Chartier2015-04-141-3/+3
| | | | | | | | | | | | | | | | | | The error was that we had a partially constructed field array when we got suspended by moving GC. This caused the already allocated fields to not get updated, and be stale roots the next GC. Fixes test 125 with GSS collector. Change-Id: I7278def915f540b6a9d12677a6ba61637f5949a2
* | ART: Make the PathClassLoader fast-path recursiveAndreas Gampe2015-04-141-80/+118
|/ | | | | | | | | | Allow an arbitrary nesting of path class-loaders. This will also handle the fake java.lang.BootClassLoader as a class-loader object correctly (which is of some importance to compile-time initialization). Bug: 19781184 Bug: 19542228 Change-Id: I61f0249cf4ec8df08a83ccbd29bcf067619c28c0
* Move ArtField to nativeMathieu Chartier2015-04-101-208/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add linear alloc. Moved ArtField to be native object. Changed image writer to put ArtFields after the mirror section. Savings: 2MB on low ram devices 4MB on normal devices Total PSS measurements before (normal N5, 95s after shell start): Image size: 7729152 bytes 23112 kB: .NonMoving 23212 kB: .NonMoving 22868 kB: .NonMoving 23072 kB: .NonMoving 22836 kB: .NonMoving 19618 kB: .Zygote 19850 kB: .Zygote 19623 kB: .Zygote 19924 kB: .Zygote 19612 kB: .Zygote Avg: 42745.4 kB After: Image size: 7462912 bytes 17440 kB: .NonMoving 16776 kB: .NonMoving 16804 kB: .NonMoving 17812 kB: .NonMoving 16820 kB: .NonMoving 18788 kB: .Zygote 18856 kB: .Zygote 19064 kB: .Zygote 18841 kB: .Zygote 18629 kB: .Zygote 3499 kB: .LinearAlloc 3408 kB: .LinearAlloc 3424 kB: .LinearAlloc 3600 kB: .LinearAlloc 3436 kB: .LinearAlloc Avg: 39439.4 kB No reflection performance changes. Bug: 19264997 Bug: 17643507 Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
* Fix CC root visiting bugMathieu Chartier2015-04-071-1/+2
| | | | | | Also some cleanup. Change-Id: Ia3de8f2d409770be3619ec116e8b06ecd82338fe
* Refactor and improve GC root handlingMathieu Chartier2015-04-061-14/+17
| | | | | | | | | | | | | | | | | | | | | | Changed GcRoot to use compressed references. Changed root visiting to use virtual functions instead of function pointers. Changed root visting interface to be an array of roots instead of a single root at a time. Added buffered root marking helper to avoid dispatch overhead. Root marking seems a bit faster on EvaluateAndApplyChanges due to batch marking. Pause times unaffected. Mips64 is untested but might work, maybe. Before: MarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us After: MarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us Bug: 19264997 Change-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca
* Merge "Store OatDexFile instead of OatFile in DexFile."Richard Uhler2015-04-031-35/+15
|\
| * Store OatDexFile instead of OatFile in DexFile.Richard Uhler2015-04-021-35/+15
| | | | | | | | | | | | | | | | This requires moving OatDexFile out of the OatFile class so that a forward class declaration can be used for OatDexFile. Bug: 19071355 Change-Id: Ibda85b78d0577e9e81073090616fc0f2fa526be3
* | Use specific exception class to abort transactionSebastien Hertz2015-04-031-1/+1
|/ | | | | | | | | | | | | | | We used to throw a java.lang.InternalError when aborting a transaction (when preinitializing image classes at compilation time). We now use dedicated class dalvik.system.TransactionAbortError that is only thrown by the compiler to abort a transaction. This class has constructors taking a java.lang.Throwable "cause" so we can wrap exceptions causing the transaction to abort (for instance class java.lang.ClassNotFoundException) and give more information about the cause of the transaction abort. Bug: 20019689 Change-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622
* Add AccessibleObject and Field to mirrorMathieu Chartier2015-03-291-14/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Main motivation is to remove all the functionality / field access on java side to ArtField. Also comes with some reflection speedups / slowdowns. Summary results: getDeclaredField/getField are slower mostly due to JNI overhead. However, there is a large speedup in getInt, setInt, GetInstanceField, and GetStaticField. Before timings (N5 --compiler-filter=everything): benchmark ns linear runtime Class_getDeclaredField 782.86 === Class_getField 832.77 === Field_getInt 160.17 = Field_setInt 195.88 = GetInstanceField 3214.38 ============== GetStaticField 6809.49 ============================== After: Class_getDeclaredField 1068.15 ============ Class_getField 1180.00 ============== Field_getInt 121.85 = Field_setInt 139.98 = GetInstanceField 1986.15 ======================= GetStaticField 2523.63 ============================== Bug: 19264997 Change-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77
* ART: Use instrumented Alloc in Class-LinkerAndreas Gampe2015-03-271-3/+3
| | | | | | | To support Valgrind over dex2oat and gtests, CreatePathClassLoader must use instrumented allocation. Change-Id: I9dc2d009d37bec598c5de67688ebf9810da6e899
* Merge "ART: PathClassLoader for compiler"Andreas Gampe2015-03-281-35/+105
|\
| * ART: PathClassLoader for compilerAndreas Gampe2015-03-271-35/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use an actual PathClassLoader when compiling apps, instead of a side structure and cutout. This CL sets up a minimal object 'cluster' that recreates the Java side of a regular ClassLoader such that the Class-Linker will recognize it and use the internal native fast-path. This CL removes the now unnecessary compile-time-classpath and replaces it with a single 'compiling-the-boot-image' flag in the compiler callbacks. Note: This functionality is *only* intended for the compiler, as the objects have not been completely initialized. Bug: 19781184 Change-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d
* | Fix ClassLinker::MayBeCalledWithDirectCodePointer for JITMathieu Chartier2015-03-261-0/+4
|/ | | | | | | | | | | | | Currently, we don't know if another method has a direct code pointer or not. This should fix the case where breakpoints occasionally don't work with JIT. The JIT now also checks that a method doesn't have any breakpoints before starting to compile it. Bug: 17950037 Change-Id: I17cfe874fe4825beba23903a5053d5cb27e106cb
* Fix 003-omnibus-opcodes flaky failures with GSS GC.Hiroshi Yamauchi2015-03-191-50/+50
| | | | | | | | Fix a moving GC bug in Class::SetStatus(). Bug: 19828874 Change-Id: I6bef49a7ce964e8a7e316f282aaf1b8544efe76d
* Clean up hash setMathieu Chartier2015-03-181-3/+3
| | | | | | | Added vertical whitespace, const iterators, made some functions const. Change-Id: I188dc0384a98d6dae2822f0ac38b740f2356c23d
* Merge "Remove ThrowLocation."Nicolas Geoffray2015-03-101-10/+6
|\
| * Remove ThrowLocation.Nicolas Geoffray2015-03-101-10/+6
| | | | | | | | | | | | | | Note that this is a cleanup change, and has no functionality change. The ThrowLocation had no use anymore. Change-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6
* | Create OatFileAssistant class for assisting with oat files.Richard Uhler2015-03-091-875/+53
|/ | | | | | | | | | | | | | | The oat file assistant is used for determining whether dex2oat or patchoat is needed, for running dex2oat or patchoat as needed to make an oat file up to date, and to load dex files associated with a given dex location. The introduction of the OatFileAssistant class is meant to clean up and consolidate code related to the management of oat files that was duplicated and spread across dalvik_system_DexFile.cc and class_linker.cc. Bug: 11301553 Change-Id: I0c16027b9bae4570c2c50faa9c14f581c0cbafb8
* Compute the right catch location for the debugger.Nicolas Geoffray2015-03-091-9/+9
| | | | | | Also remove tls ThrowLocation, it is not needed anymore. Change-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9
* Merge "Follow-up 128393"Sebastien Hertz2015-03-031-2/+2
|\
| * Follow-up 128393Sebastien Hertz2015-03-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Avoids false warning when initializing the exception's class by marking the transaction aborted after throwing the InternalError exception. Also uses VLOG(compiler) to print the warning since it's only useful when investigating ahead-of-time class initialization. Bug: 19202032 Change-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861
* | Merge "ART: Move DexFile vector to Java array"Andreas Gampe2015-03-021-5/+6
|\ \ | |/ |/|
| * ART: Move DexFile vector to Java arrayAndreas Gampe2015-02-241-5/+6
| | | | | | | | | | | | | | | | To avoid having native vectors only referenced by Java objects, which look like leaks to Valgrind, use a Java array to store references to native DexFile objects. Change-Id: If3c2b31b9d0914ed1965cfd5e3fdb94ea41b1477
* | Fix JIT for vmdebug test 99Mathieu Chartier2015-02-251-11/+11
| | | | | | | | | | | | | | | | Test was flaky due to JIT re-compiliation after deoptimization resulting in some invalid PC offsets. Bug: 17950037 Change-Id: I276c84c918579259ce47ef873892c3c5dcf0c977