summaryrefslogtreecommitdiffstats
path: root/runtime/jni_internal.cc
Commit message (Collapse)AuthorAgeFilesLines
* Require mutator lock for DeleteLocalRefMathieu Chartier2015-06-261-6/+7
| | | | | | | | | | | | There was a race condition where suspended threads could call DeleteLocalRef while the GC was marking their roots. This could cause the GC to attempt to mark a null object. (cherry picked from commit dd06afecd67fc6a60856436ab150a4d1b9a8ad29) Bug: 22119403 Change-Id: I962c717bb87b2acb2a4710a2d7ab16793e031401
* Move mirror::ArtMethod to nativeMathieu Chartier2015-06-021-34/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Merge "Intercept JNI invocation of String.<init> methods." into mnc-devJeff Hao2015-05-211-29/+20
|\
| * Intercept JNI invocation of String.<init> methods.Jeff Hao2015-05-201-29/+20
| | | | | | | | | | | | | | | | | | | | | | libmono uses JNI AllocObject and CallNonvirtualVoidMethod to create and initialize a string instead of using the recommended NewObject. This change adds an intercept to change the String.<init> call to a StringFactory call instead. Then, it uses the object id of the original string object referrer and maps it to the result of the StringFactory. Bug: 21288130 Change-Id: Ib4db402c178bc37188d5c5faf30b6e4fdc747b17
* | ART: Fix RegisterNative orderAndreas Gampe2015-05-201-3/+50
|/ | | | | | | | | | | | | | | | | First check for both direct and virtual methods in the current class, then move to the parent. Optimize registration by checking first whether the current method under test is native. This slows down registering implementations in parent classes. Add a CheckJNI warning for this. Add a run-test to check the behavior. Fix host comparison testing. Bug: 19569721 (cherry picked from commit 3f1dc56914177993b1b018bf21ce7d39d7feecda) Change-Id: I61e77117d96310632aad123d7f1279d0f834dc99
* Add notes about fast JNI calls.Hiroshi Yamauchi2015-05-121-0/+29
| | | | | | | (cherry pick commit 36bce58f01a6b37e4d07ff9544c03a3238be087f) Bug: 19665903 Change-Id: I7cc37ab572d2e9ff86f6388c80a3c453a2bca046
* Improve JNI registration failure loggingMathieu Chartier2015-05-041-2/+4
| | | | | | | | | | Print INTERNAL_FATAL instead of ERROR, print the "Failed to register native method" message last. (cherry picked from commit 5c02d6cd0cc7e10d30d8c26166ebaaf6d313d771) Bug: 13885477 Change-Id: I9f1a7ea45bd926f3984b8008d84c75e676a1ed10
* Replace String CharArray with internal uint16_t array.Jeff Hao2015-04-271-26/+32
| | | | | | | | | | | | 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
* Replace NULL with nullptrMathieu Chartier2015-04-221-1/+1
| | | | | | | Also fixed some lines that were too long, and a few other minor details. Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
* Add AbstractMethod, Constructor, MethodMathieu Chartier2015-04-211-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Move ArtField to nativeMathieu Chartier2015-04-101-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 the read barrier builds.Hiroshi Yamauchi2015-04-031-1/+1
| | | | | | | | | | A check failure (!UseJit() in ArtMethod::Invoke()) in forced interpret only mode in the eng build with JIT enabled by default on target. A build failure (inl header file issues) in the USE_BAKER_READ_BARRIER build. Change-Id: Ib13632b10864ad8b4691b66971c0ab5d2ae1e675
* Add AccessibleObject and Field to mirrorMathieu Chartier2015-03-291-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Some runtime cleanupAndreas Gampe2015-03-271-1/+1
| | | | | | | | Use an enum for the compiler-callback mode. Refactor and remove some unnecessary includes in runtime.h. Change-Id: If2245fa470171311b8e05b677cf6bb28f209585a
* ART: PathClassLoader for compilerAndreas Gampe2015-03-271-2/+4
| | | | | | | | | | | | | | | | | | | | 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
* am 2af72de8: Merge "Remove ThrowLocation."Nicolas Geoffray2015-03-101-12/+6
|\ | | | | | | | | * commit '2af72de83957fb52426b8f9144e9814d35b78951': Remove ThrowLocation.
| * Remove ThrowLocation.Nicolas Geoffray2015-03-101-12/+6
| | | | | | | | | | | | | | Note that this is a cleanup change, and has no functionality change. The ThrowLocation had no use anymore. Change-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6
* | am 5c9d8f0d: Merge "Compute the right catch location for the debugger."Nicolas Geoffray2015-03-091-29/+13
|\| | | | | | | | | * commit '5c9d8f0d2948c2b4fe4258f96e3598ad5b8fa23b': Compute the right catch location for the debugger.
| * Compute the right catch location for the debugger.Nicolas Geoffray2015-03-091-29/+13
| | | | | | | | | | | | Also remove tls ThrowLocation, it is not needed anymore. Change-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9
* | am 3d7d2af4: Merge "Change how we report exceptions to the debugger."Nicolas Geoffray2015-03-041-3/+0
|\| | | | | | | | | * commit '3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d': Change how we report exceptions to the debugger.
| * Change how we report exceptions to the debugger.Nicolas Geoffray2015-03-031-3/+0
| | | | | | | | | | | | | | This is only a refactoring/cleanup. Bug fixes with respect to catch location, and more cleanups will follow. Change-Id: I30d3c6260b0c8f8115a811621397225b88f2063a
* | am 2f9d7a5b: am 508d2665: Merge "ART: Do not JNI abort on nullptr ↵Andreas Gampe2014-12-221-3/+5
|\| | | | | | | | | | | | | GetObjectRefType" * commit '2f9d7a5bf28e26d2f92128cf420a1ce9f9be0ef6': ART: Do not JNI abort on nullptr GetObjectRefType
| * ART: Do not JNI abort on nullptr GetObjectRefTypeAndreas Gampe2014-12-221-3/+5
| | | | | | | | | | | | | | A nullptr is a valid input, as it is different from a null reference. Bug: 18820997 Change-Id: Ibda8907ba13b20d2055049492a356ffdf4ddc714
* | am 79bd7b12: am 7939a254: Merge "Add a missing ↵Stephen Hines2014-11-271-1/+2
|\| | | | | | | | | | | | | SHARED_LOCKS_REQUIRED(mutator_lock_)." * commit '79bd7b1282c100447429a174ecd0646a5178f887': Add a missing SHARED_LOCKS_REQUIRED(mutator_lock_).
| * Add a missing SHARED_LOCKS_REQUIRED(mutator_lock_).Stephen Hines2014-11-261-1/+2
| | | | | | | | | | | | This was caught by Clang 3.6 using -Wthread-safety-analysis. Change-Id: If2f25331f111ba6c67570e5aece1fba38f714d05
* | am 7210368d: am 825365c5: Merge "Fix reference leaks in ToReflectedMethod ↵Mathieu Chartier2014-11-171-4/+4
|\| | | | | | | | | | | | | and ToReflectedField" * commit '7210368d367e57aaa8d78a36048c36f8f588a85c': Fix reference leaks in ToReflectedMethod and ToReflectedField
| * Fix reference leaks in ToReflectedMethod and ToReflectedFieldMathieu Chartier2014-11-171-4/+4
| | | | | | | | | | | | | | | | | | | | Used ScopedLocalRef to fix, added regression tests. Bug: 18396311 (cherry picked from commit 8c41753e5eda8322b4d992fe88855058f4c0c2e1) Change-Id: I0ddfc20ac2384c90ff18586242c1f1d9a6d6eb6d
* | am ae1a434f: am 78a32333: Merge "ART: More warnings"Andreas Gampe2014-11-051-2/+2
|\| | | | | | | | | * commit 'ae1a434fa1740791ba479da668e8372ca3dcb2a6': ART: More warnings
| * am 78a32333: Merge "ART: More warnings"Andreas Gampe2014-11-051-2/+2
| |\ | | | | | | | | | | | | * commit '78a3233313260665fe82ba56257855e043bca3d4': ART: More warnings
| | * ART: More warningsAndreas Gampe2014-11-041-2/+2
| | | | | | | | | | | | | | | | | | | | | Enable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general, and -Wunused-but-set-parameter for GCC builds. Change-Id: I81bbdd762213444673c65d85edae594a523836e5
* | | am 1525ed87: am a10a8b56: Merge "Remove -Wno-unused-parameter and ↵Ian Rogers2014-11-041-1/+2
|\| | | | | | | | | | | | | | | | | | | | -Wno-sign-promo from base cflags." * commit '1525ed874f8611368ef34a9fc5556cc9130ccee6': Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.
| * | am a10a8b56: Merge "Remove -Wno-unused-parameter and -Wno-sign-promo from ↵Ian Rogers2014-11-041-1/+2
| |\| | | | | | | | | | | | | | | | | | | base cflags." * commit 'a10a8b56a01be95b3ec13022d3a155e163a11673': Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.
| | * Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.Ian Rogers2014-11-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix associated errors about unused paramenters and implict sign conversions. For sign conversion this was largely in the area of enums, so add ostream operators for the effected enums and fix tools/generate-operator-out.py. Tidy arena allocation code and arena allocated data types, rather than fixing new and delete operators. Remove dead code. Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
* | | am 4799e0d9: am aea6888b: Merge "Tidy up logging."Ian Rogers2014-10-291-2/+2
|\| | | | | | | | | | | | | | * commit '4799e0d90003b3ac60e204fc254a97fbf0104bd1': Tidy up logging.
| * | am aea6888b: Merge "Tidy up logging."Ian Rogers2014-10-241-2/+2
| |\| | | | | | | | | | | | | * commit 'aea6888b056be21adf762e066c7f33b8939b8a06': Tidy up logging.
| | * Tidy up logging.Ian Rogers2014-10-221-2/+2
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move gVerboseMethods to CompilerOptions. Now "--verbose-methods=" option to dex2oat rather than runtime argument "-verbose-methods:". Move ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc except for a forward declaration. Remove ConstDumpable as Dump methods are all const (and make this so if not currently true). Make LogSeverity an enum and improve compile time assertions and type checking. Remove log_severity.h that's only used in logging.h. With system headers gone from logging.h, go add to .cc files missing system header includes. Also, make operator new in ValueObject private for compile time instantiation checking. Change-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641
| * am b3f18cf7: Merge "Make ART compile with GCC -O0 again."Ian Rogers2014-10-171-3/+3
| |\ | |/ |/| | | | | * commit 'b3f18cf7466f85e15c6b7f005f544867a4d6847a': Make ART compile with GCC -O0 again.
| * am cb142101: Merge "Add way to ensure we are at the front of the sigaction ↵Mathieu Chartier2014-10-171-0/+1
| |\ | | | | | | | | | | | | | | | | | | chain" * commit 'cb142101f29a4f1e097f03a220db3da6d4bd679f': Add way to ensure we are at the front of the sigaction chain
| * \ am 902c989b: Merge "Add way to warn about missing JNI_ABORT"Mathieu Chartier2014-10-061-4/+11
| |\ \ | | | | | | | | | | | | | | | | * commit '902c989bc46da80c3c80e49c7f868b63ba73d2de': Add way to warn about missing JNI_ABORT
| * \ \ am 6d031046: ART: Update for split native bridge initializationjgu212014-09-291-0/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | * commit '6d031046eeb5e9f62b657df0695b752e1d0aa583': ART: Update for split native bridge initialization
| | * | | ART: Update for split native bridge initializationjgu212014-09-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry picked from commit a6da74e941d7cee498ac3880018a1d8dc953c6eb) (cherry picked from commit 7a536531791293441253cffb6e370ba1150eee96) Bug: 17671501 Change-Id: Id948e3ab22ac988d96f5d370bba8c3f86d08abff
| | * | | Delete pin tableMathieu Chartier2014-09-111-38/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pin table was brought over from dalvik but not really needed since ART doesn't support pinning in movable spaces. The only thing it did was hold objects live for JNI functions. This shouldn't be necessary since people keep jni references to these objects or else they could never release the elements. Bug: 17456946 Change-Id: Ibed0d029157ffb9e75ecd80d4d544d690986c090
| | * | | Add native memory accounting through custom allocator.Mathieu Chartier2014-08-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a custom allocator that lets you pass in a special tag which specifices where the allocation came from. This is used when dumping. The performance overhead is low since each allocation only does a atomic add/sub for each allocation/free. The measurements are dumped to traces.txt during SIGQUIT. Example output: I/art (27274): AllocatorTagHeap active=120 max=120 total=168 I/art (27274): AllocatorTagMonitorList active=1572 max=6240 total=11724 I/art (27274): AllocatorTagClassTable active=185208 max=185208 total=268608 I/art (27274): AllocatorTagInternTable active=430368 max=430368 total=436080 I/art (27274): AllocatorTagMaps active=5616 max=6168 total=34392 I/art (27274): AllocatorTagLOS active=1024 max=1536 total=2044 I/art (27274): AllocatorTagSafeMap active=0 max=51936 total=533688 I/art (27274): AllocatorTagLOSMaps active=144 max=1248 total=5760 I/art (27274): AllocatorTagReferenceTable active=10944 max=11840 total=19136 I/art (27274): AllocatorTagHeapBitmap active=32 max=40 total=56 I/art (27274): AllocatorTagHeapBitmapLOS active=8 max=8 total=8 I/art (27274): AllocatorTagVerifier active=0 max=18844 total=1073156 I/art (27274): AllocatorTagModUnionCardSet active=5300 max=5920 total=56020 I/art (27274): AllocatorTagModUnionReferenceArray active=24864 max=24864 total=24864 I/art (27274): AllocatorTagJNILibrarires active=320 max=320 total=320 I/art (27274): AllocatorTagOatFile active=1400 max=1400 total=5852 Bug: 16238192 Change-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82
| | * | | [ART] Move to system/core native bridge libraryCalin Juravle2014-08-151-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cleanups on the way: - move NativeBridgeRuntimeCallbacks from a global to a field - rename native_bridge_library_string to the more suggestive navtive_bridge_library_path - clean up imports Bug: 16884833 (cherry picked from commit I73aab8e212860ba5aee9444d801806d3da326a41) Change-Id: I67f037ea81d2a4ede4294afd8b84b7640e534a13
| | * | | Clean up native bridgeIan Rogers2014-08-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (partially cherry picked from commit 68d8b42ddec39ec0174162d90d4abaa004d1983e) Change-Id: I85813e97d73b1b331646dd0e880108dfbfe80f69
| | * | | Avoid use of std::string where we have const char*.Ian Rogers2014-08-131-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removing the ClassHelper caused std::string creation for all calls to Class::GetDescriptor and a significant performance regression. Make the std::string an out argument so the caller can maintain it and its life time while allowing GetDescriptor to return the common const char* case. Don't generate GC maps when compilation is disabled. Remove other uses of std::string that are occuring on critical paths. Use the cheaper SkipClass in CompileMethod in CompilerDriver. Specialize the utf8 as utf16 comparison code for the common shorter byte encoding. Force a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing code), add some LIKELYs. x86-64 host 1-thread interpret-only of 57 apks: Before: 29.539s After: 23.467s Regular compile: Before: 1m35.347s After: 1m20.056s Bug: 16853450 Change-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad Conflicts: runtime/utils.cc
* | | | | Merge "Make ART compile with GCC -O0 again."Ian Rogers2014-10-171-3/+3
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Make ART compile with GCC -O0 again.Ian Rogers2014-10-161-3/+3
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on architecture. Add to instruction_set_test to warn when InstructionSetFeatures don't agree with ones from system properties, AT_HWCAP and /proc/cpuinfo. Clean-up class linker entry point logic to not return entry points but to test whether the passed code is the particular entrypoint. This works around image trampolines that replicate entrypoints. Bug: 17993736 Change-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23
* / | | Add way to ensure we are at the front of the sigaction chainMathieu Chartier2014-10-161-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling this after jni_on_load fixes the unity apps. This is not exactly correct since we may already have the following chain. Start up: Us -> debuggerd After app goes in front: App -> us -> debuggerd After we put ourself back at the front: Us -> app -> us -> app -> .... stack overflow. Bug: 17620677 Change-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3 (cherry picked from commit 1f24296c7c8a6501ee2388c0d20b48f471b48660)
* / / Add way to warn about missing JNI_ABORTMathieu Chartier2014-10-061-4/+11
|/ / | | | | | | | | Bug: 16858794 Change-Id: I6794a14ee323ef95569cc7646619e6869771c7c6