Age | Commit message (Collapse) | Author |
|
|
|
Test: m -j32 test-art-host
Bug: 32095919
Change-Id: I44541edeb403a508e1b9794ee09fb1f55e3f42bf
|
|
|
|
Add an abort message parameter to Runtime::Abort. In case the message
is multiline (and will thus not be completely preserved in the
Android abort reason), reprint the message after all threads have
been dumped.
Bug: 31893081
Test: m test-art-host
Change-Id: I65bc77691fec79f7c868a90d6132805fcc91e473
(cherry picked from commit 90a32b16feb58d4edf932fdcb6a070be3418e365)
|
|
Change AbortIfNoCheckJNI to take the abort message as a parameter.
This way it can be passed down.
Bug: 31893081
Test: m test-art-host
Change-Id: Ib24c7060f1b32c9613ab84e6c1966082c866bc14
(cherry picked from commit f1e8630fe8eab89e61e9f0a97135ae7c9d38ce23)
|
|
|
|
Give N-MR1 a different oat version to prevent compatibility problems
with NYC.
Bug: 31789675
Test: mma test-art-host
Test: Phone boots and runs apps
Change-Id: I6a922e8ac932dbf36a19431c4f34c2ace6f34609
|
|
When the runtime dumps a reference table, e.g., when aborting for
an overflow, dump the type of stored referents for reference types
to aid in debugging leaks.
Bug: 31600693
Change-Id: Ia892dc84ca8827dd93a8b75d6f571c392f94859c
|
|
|
|
Bug: 26882072
(cherry picked from commit 2e960a075cd30a1fdfc31597c4a64f1fca026efd)
Test: test/run-test --host --no-relocate 596-app-images
Change-Id: I40a45e7944aec3a5ee28ef3d47e9881f61a7c9e6
|
|
|
|
Put strings in the dex file that resolves them.
Depth first traversal with overrides for class and dex cache. The
work list keeps track of what oat_index with each pushed item. This
means the static fields of a class will usually be in the same image.
Added layout test to image_test to make sure things are somewhat
reasonably attributed.
Bug: 28640955
Test: test-art-host
Change-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559
|
|
|
|
|
|
Required for testing multi image layout in future CLs.
Bug: 28640955
Test: clean-oat-hos, test-art-host, device booting
Change-Id: I14809f56e711b4a87e01056c327eddbbd087f4ee
|
|
|
|
Bug: 31016523
Test: mm run-jdwp-tests-ri & mm run-jdwp-tests-host
(cherry-picked from commit de19a25625823496bcf8f92352f709c7a3924bfa)
Change-Id: I02f6c66116f4507c89f7ca1cb480d7029d97c485
|
|
|
|
|
|
We were adding duplicate methods to the vtable in some cases where
default methods (and conflict methods) were used. This caused issues
where they were not correctly overridden in subclasses that implement
these methods directly. When overridden only one of the vtable entries
was updated meaning it was still possible to reach the overridden code
using a virtual call.
This change prevents the duplicate methods from being added to the
vtable in this circumstance. It also adds a debug check that ensures
that the vtable has no duplicates to prevent regressions.
Bug: 31280371
Test: mma test-art-host
Test: mma test-art-host-run-test-960-default-smali
Change-Id: I17d88fb8949c8d5d75b4de3c734fd98660b81e61
(cherry picked from commit 1f3925d4f067438d3689ef2736fd2af063c98668)
|
|
The assumption that the dex cache type for class of the field is
resolved is not correct since FindClass does not fill in the
resolved type array. This resulted in crashes if dex_access_to ==
nullptr.
Also implemented for ResolvedMethodAccessTest
Bug: 31277064
Test: Launch ZeroTouch with profile guided compilation.
Change-Id: I40cfb15f3ae4fbfe941fd01ea46211bd86b6e6f7
|
|
|
|
Some applications may inadvertently or maliciously set of environment
variables such as LD_LIBRARY_PATH before spawning subprocesses.
To make this more difficult, save the environment at the time the
runtime starts and use the saved copy anytime Exec is called.
BUG: 30160149
TEST: make test-art-{host,target}
Change-Id: I887b78bdb21ab20855636a96da14a74c767bbfef
(cherry picked from commit d106d9f871c957286ccdeb79c1c2a5ed41f859a6)
|
|
am: 5b5ee2a89f
Change-Id: I47bfba0654850a6e15ef0337556ed6a12e02fb90
|
|
am: c770fe0480
Change-Id: If6f2946d649addef8381079eb0132d35ee1fd62f
|
|
|
|
Otherwise, method and type resolution can resolve to the wrong
things and as a side effect update the dex cache with wrong data.
bug:30403437
Change-Id: I23f94486f51c65e0a1328c6185b36084627e09b3
test:./art/test/run-test --host --jit --dev --no-prebuild 613
(cherry picked from commit 0a210d9b108c87c0e7c1d430a92ce6fc89790c95)
|
|
In order to avoid a race condition in the maps data, acquire
a read lock while iterating over the maps data.
Bug: 29387050
Bug: 31067025
(cherry picked from commit 56f8b5631ab2874dc2ec385802e38555acac0d90)
Change-Id: I48ecd2705b4aa4eedfed1daae2eb3b9b8bf8dda9
|
|
For profiling info, we need to mark the card of the holding class
instead of declaring class. This is required for GC correctness since
the GC relies on the card table to track cross space references.
Test: test-art-host ART_TEST_JIT=true
Bug: 30655270
(cherry picked from commit 65975776f807d55c83af6cca1e447f8daa794413)
Change-Id: I3de518693d3cac1ad9770eae671db740ebdf1d8d
|
|
|
|
|
|
Fix possible deadlock in EnsureResolved caused by interaction with
GC. Since we were sleeping while holding the mutator lock, it could
block thread suspension. This would deadlock if the thread that
had locked h_class is already suspended since we would spin forever
and not make progress.
Bug: 27417671
Bug: 30500547
Test: test-art-host ART_TEST_GC_STRESS=true
This reverts commit 69bf969c055c31a75d17ea92aeee756042678114.
(cherry picked from commit 4b0ef1c980a1f3b0201d77e33bdb2f7df12c9114)
Change-Id: If5766c2c3c8a130cbb83735cdb9970038570dafd
|
|
This reverts commit a704eda0078989a73cac111ed309aca50d2e289b.
Bug: 27417671
Bug: 30500547
(cherry picked from commit 69bf969c055c31a75d17ea92aeee756042678114)
Change-Id: I4354d1c9f1c554f054e99efd7aa52d8a2c5d402c
|
|
There was some possible deadlocks related to EnsureResolved caused by
acquiring an object lock.
Scenario:
Thread 1 acquires lock on obj1
Thread 1 begins to resolve / initialize class1
Thread 1 blocks since it sees that class1 is already being resolved and
gets preempted before it can acquire the object lock on class1
Thread 2 finishes resolving and initializing class1 and locks class1
Thread 2 blocks attempting to lock obj1
Thread 1 blocks attempting to lock class1
Deadlock
Fixed the deadlock by changing EnsureResolved to use a try lock for the
unresolved case.
Added a test.
Test: Device boot, test-art-host, monitor_test
Bug: 27417671
(cherry picked from commit a704eda0078989a73cac111ed309aca50d2e289b)
Change-Id: I1150b19bdc1a5cc87ae95eda4f2b6b4bca215a60
|
|
|
|
This reverts commit 1488ff8aa3b041734ef0fbd113df512a2376e44e.
Change-Id: I3c237c94ffa865378f8efd9aa2b0fb2ad33867c2
|
|
|
|
|
|
Used to return an empty string instead of the newly created String.
Requires accompanying jdwp test fix to test String contents.
Bug: 30951794
Test: mm -j24 run-jdwp-tests-host
Merges two cherry-picks:
f15ec05896ddc5fec1f224ef97bdfebb72b5a855
9e0878494cdacd0877a1614041efc38ebb053017
Change-Id: Idc4725b82798a9b6d636c72e76715bc97ad30d23
|
|
Some applications may inadvertently or maliciously set of environment
variables such as LD_LIBRARY_PATH before spawning subprocesses.
To make this more difficult, save the environment at the time the
runtime starts and use the saved copy anytime Exec is called.
BUG=b/30160149
TEST=make test-art-{host,target}-gtest-utils_test
Change-Id: Ice0097bf0de30db3d4ead124caf93316f39e3df3
|
|
|
|
|
|
|
|
|
|
ReadValueToField may allocate a string and cause OOME, we were
not checking this each loop iteration. Throwing an exception
with a pending exception causes an abort.
Bug: 30690988
Test: test-art-host
(cherry picked from commit da595bec0f9af0b087822e4febc282fe8ec28192)
Change-Id: I4701a4dcc63553aeb5c7970f99fd7f136443b266
|
|
Even if a boot image exists and can be loaded, the rest of the
platform may not be able to boot. We previously only checked
after full image generation and missed this case.
Also prune the cache if there wasn't even space to put the boot
marker.
Bug: 30765660
Change-Id: Icd43746e681c62ce2e4e8745fb17bda65ca60372
|
|
Otherwise the GC could see dangling pointers.
bug:30033802
(cherry picked from commit cf48fa030780c3185f225d558b704c396f7713cc)
Change-Id: I2c43e973878f50dc147aa0af81551ecc942a790d
|
|
|
|
The profiler stores class def indexes, not type ids.
Bug: 30436198
(cherry-picked from commit 58d40f3a7245e65d57a5daf6bf27c3b209260044)
Change-Id: I63524957547c5e0dbaf1d752220de8d05473638f
|
|
Otherwise, method and type resolution can resolve to the wrong
things and as a side effect update the dex cache with wrong data.
bug:30403437
Change-Id: I23f94486f51c65e0a1328c6185b36084627e09b3
test:./art/test/run-test --host --jit --dev --no-prebuild 613
|