| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Some modifiers not relevant might be used to encode internal information
(eg bridge methods) that shouldn't be displayed when converting to string
bug: 18488857
Change-Id: Ie82ed513b58083a795549a708197f1db52ffb796
|
|
|
|
| |
Change-Id: I8ca3a450d458d7eba13d8eee1f58fa3d907139b3
|
|
|
|
|
|
|
|
| |
getSimpleName is an expensive operation that needs to check the
dex file. Avoid for the standard daemons.
Bug: 19498458
Change-Id: I034aceabc9358ac6277b3ff8182df5cde681e66f
|
|
|
|
|
|
|
|
| |
getProxyClass(ClassLoader, Class<?>...) would hit a slow
path more often than we needed to because we were using
interfaceSet (and not interfaceList) as the key.
Change-Id: I2a0f81ea401d5adbdb31cc35bf04b3f0492cca8e
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Used to release virtual memory for apps with small heaps according
to manifest.
Bug: 18387825
Bug: 17131630
Change-Id: I73cf18c80e7ce76bd627e5a9439dec4277c6af2d
|
|/
|
|
|
| |
Bug: https://code.google.com/p/android/issues/detail?id=93714
Change-Id: I986c6af2bf8c54de06c95b2fd0d53709a7c9d573
|
|
|
|
|
| |
Bug: 18739541
Change-Id: Icf309cd8981372f24caa7c8b98a2e0591b1d90ea
|
|
|
|
|
|
|
|
| |
Fixes deadlock caused by acquirng the mutator lock while
synchronizing on the daemon thread.
Bug: 18739541
Change-Id: Ib3ac3788081d3d471195a6e3a8ed163237616a4f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes possible deadlock caused by Thread.getAllStackTraces
Thread.getAllStackTraces suspends all of the threads. If one of
the threads is a thread which holds the GC daemon lock then we
may deadlock when we allocate the stack trace. This happens if we
get a concurrent GC request when we are allocating the stack trace
elements. To fix the deadlock we now only allow a single thread to
requestGC at the same time.
Credits: yamauchi, hboehm
Bug: 18661622
Change-Id: Ia25598e5daa8ff2dc3aa976148d5ff6afa6960f0
|
|
|
|
|
|
|
|
|
|
| |
Saves ram.
Bug: 17643507
(cherry picked from commit b9a5206b91a656c091e7055ff70e4eed2c76b8b1)
Change-Id: Ic446a8466eb877ddf680e1d312ae94df028f9e73
|
|
|
|
|
|
| |
Change-Id: Ia0ad61589542c5ce317b6a5a6bb4ca12d7e6647b
(cherry picked from commit 13e57c9c508dea33e9bd5768a3cbd79eb263790e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit bfa3ed0ad988e1da13626ddbaf6dcae0c58ea79e in art preserves
the original field order for ArtFields, and they will therefore be
sorted by name. For classes with large numbers of static and instance
fields, a binary search is obviously much faster.
Before:
Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 275460.26 ns; σ=19.75 ns @ 3 trials
Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 661690.26 ns; σ=6340.84 ns @ 5 trials
After:
Scenario{vm=app_process, trial=0, benchmark=GetInstanceField} 3502.96 ns; σ=32.15 ns @ 3 trials
Scenario{vm=app_process, trial=0, benchmark=GetStaticField} 6579.58 ns; σ=40.49 ns @ 3 trials
bug: 18211592
(cherry picked from commit 8d471d854e0b66d079014519b562e673f8762995)
Change-Id: I098192a217f858dcbb6f60472b5ad1c0d72906ee
|
|
|
|
|
|
|
|
| |
Bug: 17643507
(cherry picked from commit c46775d1a134eb1bf55557e33d34c732c0520660)
Change-Id: I9cddc73cbf4b79ad4d50c6d413bea7ec3e62e4b3
|
|
|
|
|
|
|
|
|
|
|
| |
There is no reason to allow multiple, allocating threads may have
multiple GC requests before the GC starts.
Bug: 17942071
(cherry picked from commit 71891f9da2fbcb865931da70ae759032e6698106)
Change-Id: I5e2162373bcef1027eb71e5b1699186ff015f92d
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are used by ViewDebug to obtain the declared fields and methods
and then perform type resolution checks on a per-field and per-method
basis. Also updates documentation and naming so that the newly exposed
methods are less likely to be used incorrectly within the framework.
BUG: 17375269
(cherry picked from commit 206773d0a85a03b70a5a5cd6bf5e6f2a2a2326d4)
Change-Id: Ia656d6e8a00ebcb0b729e68aa8a2c1959b9e260b
|
|
|
|
|
|
|
|
|
| |
Previously we started at element 2 and had that element 1 was the
last one finalized. This caused System.runFinalzition to
occasionally finish before all of the objects were finalized.
Bug: 17932313
Change-Id: I410dc1ef97ecd30c35f0fc0c3fdfbcc9caa585dd
|
|
|
|
|
|
|
|
| |
Bug: 17679443
(cherry picked from commit 75c02d71f2345d9f19e9c36dd75c3d08d9f562dc)
Change-Id: I4cf9113dfedb2981dc9ce219c96fe1f71f4e0e98
|
|
|
|
|
|
|
| |
This goes with the array allocation path optimization CL 108967.
Bug: 9986565
Change-Id: I96de4725d4517d84af34ad05792fce8aa322f57a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| | |
anymore."
|
| |
| |
| |
| |
| | |
Bug: 16236588
Change-Id: Icebdf0febee72a5dbbebc1906b069d52bf756e80
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I0620c33972e061ba18504579430d2ac02656d17a
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Bug: 16828157
(cherry picked from commit fe51ef7c7974e33b2ee20457aa16d6aef6cf3485)
Change-Id: I271571a7501b9bce03ad1c09e09b5bfe4ffc422b
|
|
|
|
|
|
|
|
|
| |
This is required to implement some aspects of the multi
lib installation process.
(cherry picked from commit 32f32721e65c93a3aaf8a792b7742aabe7e29e7e)
Change-Id: I10fedcbee1318d132d2ac517ddf8cdca02a51cda
|
|
|
|
|
|
|
| |
Added static field in Reference class to hold slow path flag and added
benchmark to test Reference.get() performance.
Change-Id: I13ad65a356fe4e104d8d83980694dc2740d7d039
|
|
|
|
| |
Change-Id: Icb2e2b075615fdf384c49da85145c2b5cb6f38c5
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
| |
Bug: 14298175
Change-Id: I3f36ca6259a28bf9beae02bf30ba365eb263e3c1
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This is a companion CL for art/ change
"Move quick frame info to OatQuickMethodHeader."
https://android-review.googlesource.com/93241
Change-Id: I07e2f4c756a0738433d9341847410b612001c5b6
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Libcore side of this change. Corresponding art change here:
https://android-review.googlesource.com/#/c/89620/
Change-Id: I00610421438155fc60d6780b06581b874419ca2b
|
|/
|
|
|
| |
Bug: 12687968
Change-Id: I9161cb06dda2e9113476f2f400cac70e01726c58
|
|
|
|
|
|
|
| |
Libcore side of this change. Has a corresponding art change.
Bug: 13620925
Change-Id: I68f726af5f2b5a79c9ffd6f2c76a0b3f2600ca9d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This feature is disabled by default.
Change-Id: Ia8db311c1bc994737964121700a70b33920ddc4a
|
|\ |
|