summaryrefslogtreecommitdiff
path: root/runtime/intern_table.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2019-06-13 12:18:37 +0100
committer Vladimir Marko <vmarko@google.com> 2019-06-27 08:25:24 +0000
commit31c3daa15da0599b0f916202c49ef4d35e77213b (patch)
tree3966159700b54af8a39a8b426ab06c8c4b6960f1 /runtime/intern_table.h
parentb476a29a2cda22b86fc1d96e4cc65ce36fb878af (diff)
GC-independent image layout.
Make sure we visit objects in a defined order, independent of their order in the heap. The new order depends only on dex file contents and contents of initialized classes, thus any non-determinism would have to be contributed by the class initialization itself rather than GC. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: aosp_taimen-userdebug boots. Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 26687569 Change-Id: I62521322289a22eb13faae526ba2c3589e6ab381
Diffstat (limited to 'runtime/intern_table.h')
-rw-r--r--runtime/intern_table.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/intern_table.h b/runtime/intern_table.h
index 745821d0ca..a5301a5908 100644
--- a/runtime/intern_table.h
+++ b/runtime/intern_table.h
@@ -132,6 +132,10 @@ class InternTable {
REQUIRES(!Roles::uninterruptible_);
// Interns a potentially new string in the 'weak' table. May cause thread suspension.
+ ObjPtr<mirror::String> InternWeak(const char* utf8_data) REQUIRES_SHARED(Locks::mutator_lock_)
+ REQUIRES(!Roles::uninterruptible_);
+
+ // Interns a potentially new string in the 'weak' table. May cause thread suspension.
ObjPtr<mirror::String> InternWeak(ObjPtr<mirror::String> s) REQUIRES_SHARED(Locks::mutator_lock_)
REQUIRES(!Roles::uninterruptible_);