summaryrefslogtreecommitdiffstats
path: root/libart/src
Commit message (Collapse)AuthorAgeFilesLines
* Change FinalizerWatchdogDaemon to not hold objects liveMathieu Chartier2014-09-191-11/+22
| | | | | | | | | | | | | | Previously, waitForFinalization would hold whatever object was being finalized live for MAX_FINALIZE_NANOS even though the finalizer on this object was run much earlier. This caused a test to be flaky since it was assuming that the JNI weak global reference of a recently finalized object wouldn't be held live. Bug: 17305633 (cherry picked from commit 6ba680664fa14a547543a8c63708543ea8072680) Change-Id: Ide60db55190a3764c16e4919a7c71a113cbf3968
* Merge "Remove referenceStaticOffsets from Class.java since it's not needed ↵Mingyao Yang2014-09-101-3/+0
|\ | | | | | | anymore."
| * Remove referenceStaticOffsets from Class.java since it's not needed anymore.Mingyao Yang2014-09-101-3/+0
| | | | | | | | | | Bug: 16236588 Change-Id: Icebdf0febee72a5dbbebc1906b069d52bf756e80
* | Add Reference.getReferent for reference intrinsic.Mathieu Chartier2014-09-091-1/+13
|/ | | | | | | | | Reference intrinsic was incorrectly inlining PhantomReference.get(). We get around this by adding a layer of indirection. Reference.get() now calls getReferent() which is intrinsified and inlined. Bug: 17429865 Change-Id: I39803506c7bd800500ca3632a6cdf1077e382bff
* Add handling for hashed uninflated object.Mathieu Chartier2014-09-081-0/+6
| | | | | | | | | | | | | | | | | This is an Optimization to reduce how often we call System.identityHashCode. If the lockword is set to the hash code state then we simply return this value. Otherwise, we use System.identityHashCode. Maps launch exclusive time spent in System.identityHashCode: Before: 4.5% After: 2.4% Bug: 16828525 (cherry picked from commit 6917aebf2eb26c2b003a72d09c1c5bb6310160b0) Change-Id: I0ccad53cb5f8f4f27fe11725a91ab45a117452a3
* Make explicit that ISA names are used in some sys propertiesCalin Juravle2014-08-261-0/+4
| | | | Change-Id: I0620c33972e061ba18504579430d2ac02656d17a
* Don't allow Class.class.getDeclaredConstructor().setAccessible().Mathieu Chartier2014-08-111-0/+7
| | | | | | | | The new behavior is to throw a SecurityException. Bug: 16866726 Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=561 Change-Id: I1fa0d9617f8b25bf4e93a52c4aed22f0be27555b
* Workaround doclava leaking ArtMethodBrian Carlstrom2014-08-051-0/+8
| | | | | | | | Bug: 16828157 (cherry picked from commit fe51ef7c7974e33b2ee20457aa16d6aef6cf3485) Change-Id: I271571a7501b9bce03ad1c09e09b5bfe4ffc422b
* API to query whether a given instruction set / abi is 64bit.Narayan Kamath2014-07-141-0/+11
| | | | | | | | | This is required to implement some aspects of the multi lib installation process. (cherry picked from commit 32f32721e65c93a3aaf8a792b7742aabe7e29e7e) Change-Id: I10fedcbee1318d132d2ac517ddf8cdca02a51cda
* Moved slow path flag to Reference classFred Shih2014-07-101-0/+16
| | | | | | | Added static field in Reference class to hold slow path flag and added benchmark to test Reference.get() performance. Change-Id: I13ad65a356fe4e104d8d83980694dc2740d7d039
* Fix javadoc @char instead of @code.Elliott Hughes2014-06-261-1/+1
| | | | Change-Id: Icb2e2b075615fdf384c49da85145c2b5cb6f38c5
* Merge "Clarify the String.compareTo contract and add tests."Elliott Hughes2014-06-261-304/+148
|\
| * Clarify the String.compareTo contract and add tests.Elliott Hughes2014-06-261-304/+148
| | | | | | | | | | | | | | | | | | | | | | Our use of vague terms like "negative" and "positive" led VM engineers to assume they had more leeway than they actually do. While we're here, let's fix all the ambiguous use of 'character' and add a warning and link to Collator anywhere the non-standard (and non-locale-specific) case folding is used. Change-Id: I0a0fb2a493861d32fac0bc4e28ae9634f8ac342c
* | libcore: Clean up Enum.compareTo(E)Valter Strods2014-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | As E extends Enum<E>, it is safe to cast the comparable object to Enum<?> as it should not throw any exceptions. When it is cast, the ordinal value can be accessed directly. Doing so would be preferred as either both the variables this.ordinal and o.ordinal should be used or the methods this.ordinal() and o.ordinal() should be used without mixing them together. Change-Id: I7c4e93fdf35b0bf2949738a91c0855d9a52e5c13
* | Fix libart files to work with javadocBrian Carlstrom2014-06-182-2/+2
|/ | | | | Bug: 14298175 Change-Id: I3f36ca6259a28bf9beae02bf30ba365eb263e3c1
* Provide more information about the runtimeSebastien Hertz2014-05-221-0/+15
| | | | | | | | | | Adds methods vmInstructionSet, is64Bit and isCheckJniEnabled to the VMRuntime class. They are used by DdmHandleHello class in the framework to report new information about the runtime to DDMS. Bug: 14888999 Bug: 14888124 Change-Id: I8a2d3f22f84a093be2fbc74464af6aa7b2a2bebb
* Remove ArtMethod's quick fields for frame size and spills.Vladimir Marko2014-05-121-13/+0
| | | | | | | | This is a companion CL for art/ change "Move quick frame info to OatQuickMethodHeader." https://android-review.googlesource.com/93241 Change-Id: I07e2f4c756a0738433d9341847410b612001c5b6
* Handle Reference.get in native code.Mathieu Chartier2014-05-061-0/+198
| | | | | | | | | This enables us to have mostly concurrent reference processing in the GC. Reference.get() may block if references are being processed. Bug: 14381653 Change-Id: I7cf6ef34b08f804897c8e6d5e9e6ae94420dc489
* Add finalizer references in native code.Mathieu Chartier2014-05-011-3/+0
| | | | | | | | | | | Finalizers are now added from native code in the allocation code path. This is an optimization since some of the entrypoints aren't used for finalizable objects and therefore we can eliminate the check. Bug: 14078487 Change-Id: I7edba4c884abec23678e59eb7480abc344f1ffa8
* Add a mapping between ABIs and instruction sets.Narayan Kamath2014-05-011-0/+30
| | | | | | | | | | | Bridges the android ABI lists (TARGET_CPU_ABI, TARGET_CPU_ABI2 from the BoardConfig and android.os.Build.CPU_ABI) and the runtime concept of an instruction set used for compilation (the --instruction-set to dex2oat and so on). (cherry picked from commit 6174cff204aa36e622e9bd93569b4a1eb2ed222c) Change-Id: Id2eaa60f0546d6c88770f8981adac2a896ed7d49
* Merge "Remove ArtMethod's quick fields mapping table and vmap table."Vladimir Marko2014-04-281-16/+0
|\
| * Remove ArtMethod's quick fields mapping table and vmap table.Vladimir Marko2014-04-161-16/+0
| | | | | | | | | | | | | | | | This is a companion CL for art/ change "Move mapping table and vmap table offsets to OatMethodHeader." https://android-review.googlesource.com/90699 Change-Id: Ibc46e2d6f0f8dce5f1ec6acbefea3c80f034cbd2
* | Fix Class.newInstance to not wrap its exceptions.Jeff Hao2014-04-231-4/+4
|/ | | | | | | | | Unlike Constructor.newInstance, Class.newInstance should not wrap exceptions it throws. Bug: https://code.google.com/p/android/issues/detail?id=68620 Change-Id: I3b89e8417d770b1908fea585062e62d5de292331
* Merge "Fix reflection access checks for app compatibility in libcore."Jeff Hao2014-04-011-0/+7
|\
| * Fix reflection access checks for app compatibility in libcore.Jeff Hao2014-04-011-0/+7
| | | | | | | | | | | | | | Libcore side of this change. Corresponding art change here: https://android-review.googlesource.com/#/c/89620/ Change-Id: I00610421438155fc60d6780b06581b874419ca2b
* | Rename read barrier-related fields.Hiroshi Yamauchi2014-03-311-3/+3
|/ | | | | Bug: 12687968 Change-Id: I9161cb06dda2e9113476f2f400cac70e01726c58
* Add access checks to Method and Field reflection.Jeff Hao2014-03-275-47/+135
| | | | | | | Libcore side of this change. Has a corresponding art change. Bug: 13620925 Change-Id: I68f726af5f2b5a79c9ffd6f2c76a0b3f2600ca9d
* ART sampling profilerDave Allison2014-03-071-1/+1
| | | | | | | | | | | | | | | Add isDexOptNeededInternal() to the DexFile class. This is like isDexOptNeeded() except takes additional arguments that are used to determine whether a profile has changed of not. The isDexOptNeeded() method is part of the exported API and cannot be changed. The new method is not part of the API. Also add additional argument to the registerAppInfo() methods (the package name). This is used to determine the profile filename. Bug: 12877748 Change-Id: If862cc5d20fae4b9d46c488f401cda6d433b4a57
* Add unpadded array allocations.Ian Rogers2014-02-281-0/+7
| | | | | | | | | | | | | | | Unpadded array allocations avoid unused bytes following arrays. API conventions follow those of newNonMovableArray. Dalvik implementation assume dlmalloc allocation properties, ART implementation is handled by resizing the array post-allocation: https://android-review.googlesource.com/83670 Add VMRuntimeTest to check the properties of the array allocation routines. Change java.lang.reflect.Array.newInstance to compare more probable array types before less probable ones. Bug: 13028925. Change-Id: Icf6bfb1aa5ad4faa062b393082c689b6118a84b5
* (Experimental) Add Brooks pointers (libcore).Hiroshi Yamauchi2014-02-251-0/+9
| | | | | | This feature is disabled by default. Change-Id: Ia8db311c1bc994737964121700a70b33920ddc4a
* Merge "Add documentation around zero-length timeouts"Neil Fuller2014-02-122-48/+56
|\
| * Add documentation around zero-length timeoutsNeil Fuller2014-02-122-48/+56
| | | | | | | | | | | | | | | | | | | | | | Add documentation to cover the fact that wait() and join() treat zero-length timeouts as "wait indefinitely". Improved documentation for when a thread is already interrupted when the various sleep/join/wait calls are made, and what happens to the interrupted state. Bug: 12931322 Change-Id: I4e8353cb556ff335df187fd5efa1f42c9b196cd6
* | Don't hardcode object layout in Unsafe.Hiroshi Yamauchi2014-02-111-19/+5
| | | | | | | | Change-Id: I0e2509a1a46c2aa937e4a45cabefb4998a8ed7f4
* | Fix Thread.sleep(0) of an interrupted threadBrian Carlstrom2014-02-101-0/+14
|/ | | | | Bug: 12929305 Change-Id: I3061c3345c68de8bcf438e6935446b4f7cd76001
* 64bit ART object model changes.Ian Rogers2014-02-063-34/+95
| | | | | | | The libcore portion of: https://android-review.googlesource.com/#/c/80375/ Change-Id: Ic974e92fbb98e184b9cb01ea82b0bfba03374f79
* Merge "ART: remove dex cache's initialized static storage."Ian Rogers2014-01-082-4/+0
|\
| * ART: remove dex cache's initialized static storage.Ian Rogers2014-01-072-4/+0
| | | | | | | | Change-Id: I01f099b26bbfa04cc211e31cd0444400d0a00395
* | Add registerAppInfo to the VMRuntime objectDave Allison2013-12-181-0/+5
|/ | | | | | | | | This adds the native function registerAppInfo() to the VMRuntime object. It is called by the ActivityThread in the framework to tell the runtime about application info. Bug: 11539952 Change-Id: I3958a40af5afd513f943093fb483885c2b6b119e
* Add method for updating dalvik process state through VMRuntime.Mathieu Chartier2013-11-251-0/+6
| | | | | | | | | Used to know when to do trimming and will be used for knowing when to do compaction. Bug: 8981901 Change-Id: I0f715f8c9dfc5f7399b54261fe08410449fef10e
* Replace usage of CopyOnWriteArraySet.Narayan Kamath2013-11-222-22/+40
| | | | | | | | | | | Use a List<Class<?>> as the cache key instead, but dedup and check for nulls in the list using a HashSet instead. This will improve performance for large lists of interfaces. bug: 10316383 Change-Id: Id0c36a731e6e3cb39bf36c083180c0c4da5c2dd4 (cherry picked from commit 6074af533f57a93e1b8e1ab63dce6a264a4d5dae)
* Fix the art version of getGenericSuperclass.Narayan Kamath2013-11-221-1/+6
| | | | | | | | art version of: https://android-review.googlesource.com/#/c/70325 bug: 10918616 Change-Id: Id4e221137410027757a5353476d78290f73d7ad8 (cherry picked from commit 34ab628b61321c17b5c1406656e7b352ab0a76a2)
* Fix Class.getEnclosingClass for anonymous classes declared in <clinit> methodsBrian Carlstrom2013-11-071-4/+5
| | | | | | | | | (cherry picked from commit b9be313bdc257089534f738ff8e1e5ad4de3d25e) Bug: 11245138 Related bug: https://code.google.com/p/android/issues/detail?id=61003 Change-Id: I5cc1db6ca6628b845409d7a6ea864da5f625fdc3
* Libcore support for Interface Method Tables (IMT).Jeff Hao2013-11-071-0/+3
| | | | | | (cherry picked from commit 500f98f9696baad7ba16bd5ad65e8caa475ebfe7) Change-Id: I0d611ba7b24f2a990a4a2958939b0f6d739d3c14
* Add VMRuntime.getTargetSdkVersion.Alex Klyubin2013-10-241-2/+18
| | | | | | | The goal is to enable libcore to adjust its behavior based on the target SDK version / API Level of the app. Change-Id: I60f1febc1f8ddf2a97925a48ddf232508d5c44f9
* Merge "Preload DexCaches"Brian Carlstrom2013-10-211-3/+5
|\
| * Preload DexCachesBrian Carlstrom2013-10-161-3/+5
| | | | | | | | | | Bug: 11045348 Change-Id: Idbd6ad284964035a3fcf1ec360a3490f32f99d42
* | Fix libart String.charAt documentation to match libdvm.Elliott Hughes2013-10-161-7/+2
|/ | | Change-Id: I901d818e96af0b9240808bb70ccbe8a17854d485
* Fix Class.getDeclaringClass bug for ARTBrian Carlstrom2013-10-121-0/+3
| | | | | Bug: https://code.google.com/p/android/issues/detail?id=61003 Change-Id: Ia2cc774a9239ecd64f8039b2ca9e27593126e2cf
* am 83c419d7: am c8cfc667: Preload DexCachesBrian Carlstrom2013-10-091-0/+4
|\ | | | | | | | | * commit '83c419d78e40c8bccc07ba3f118667b8bb958d30': Preload DexCaches
| * Preload DexCachesBrian Carlstrom2013-10-081-0/+4
| | | | | | | | | | Bug: 11045348 Change-Id: I3025d8f95e157af602b0ae91d974cb5e6678fb3d