diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2015-02-23 11:14:40 -0800 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2015-02-23 11:25:51 -0800 |
commit | 9e47bfa71d42df101aff9d156a1b296eaf6566a2 (patch) | |
tree | 5122555b45668ab6cf0037772ffb50aacf46142e /runtime/gc_root.h | |
parent | d98ff78976696fdde1e7868d4687719a0439544b (diff) | |
download | art-9e47bfa71d42df101aff9d156a1b296eaf6566a2.tar.gz art-9e47bfa71d42df101aff9d156a1b296eaf6566a2.tar.bz2 art-9e47bfa71d42df101aff9d156a1b296eaf6566a2.zip |
Avoid unaligned accesses (SIGBUG/BUS_ADRALN) in IRT.
Pointers in IrtEntry aren't currently aligned under 64 bit builds. But
unaligned atomic stores (store exclusive) do not work on arm64 (causes
SIGBUG/BUS_ADRALN). Fix CC collector crashes caused by this.
Bug: 12687968
Change-Id: I1d2f5376778a9a1e5cfea876f1f57d7a88ad5445
Diffstat (limited to 'runtime/gc_root.h')
-rw-r--r-- | runtime/gc_root.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/gc_root.h b/runtime/gc_root.h index 7e0be64441..c5feda5407 100644 --- a/runtime/gc_root.h +++ b/runtime/gc_root.h @@ -71,7 +71,7 @@ class RootInfo { typedef void (RootCallback)(mirror::Object** root, void* arg, const RootInfo& root_info); template<class MirrorType> -class PACKED(4) GcRoot { +class GcRoot { public: template<ReadBarrierOption kReadBarrierOption = kWithReadBarrier> ALWAYS_INLINE MirrorType* Read() const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); |