| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Mask the low 28 bits of the lock word.
Bug: 19355854
Bug: 12687968
Change-Id: Ic6db7e23fa1a98b28564880d78e7c7cc0c8c0bdc
|
|
|
|
|
|
|
|
| |
This isn't public API, and isn't related to NIO. It's only ever
used by java.lang.String.
bug: 10898787
Change-Id: I4e194406746b88ba7268c2553e467e7e05400b40
|
|
|
|
|
|
|
|
| |
This caused fallout elsewhere requiring
- Package fix to pass 005-annotations
- ObjectInputStream fix to pass 093-serialization
Change-Id: I6bc470e20fa177e8a3debe55c90a84eef7ef518e
|
|
|
|
| |
Change-Id: I9f68c96b4ddf7e8c004a3209fcc04fb371fb014a
|
|
|
|
|
|
| |
Bug: 19264997
Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
|
|
|
|
|
|
| |
This is an unnecessary method.
Change-Id: I4457ff8491628208312d0ba8b2fa4230a597c5de
|
|
|
|
| |
Change-Id: I65cdec4c0ad15fd4b9ecdf3ef076bb0ac02d9ccc
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
ArtFields are now handled in native. Java portion of this change:
https://android-review.googlesource.com/#/c/145032/
Bug: 19264997
Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In preparation for making dex cache arrays native, avoid
using them in Java code.
This causes a performance regression for our reflection
benchmarks. Class_getDeclaredMethod and Class_getMethod
take an up to 30% hit, measured using the Quick compiler.
We accept this hit at this stage and we will tune the
performance after we're done with the larger effort.
Companion art/ change:
https://android-review.googlesource.com/146068
Bug: 20134538
Change-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1
|
|
|
|
|
|
|
|
| |
This class is only used by ART's compiler to abort transaction when
initializing image classes ahead-of-time.
Bug: 20019689
Change-Id: I60bb9270074ccabb04e14369ebeb755493729a23
|
|
|
|
|
|
|
|
|
|
| |
Pre-requisite to making them non java objects. Some other changes to
speed up reflection.
TODO: Another CL for ArtMethod.
Bug: 19264997
Change-Id: I17ca0cf4b9ba853e59f4a6eff3a05d9d90cf23f9
|
|
|
|
|
|
|
|
|
| |
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
|