summaryrefslogtreecommitdiffstats
path: root/runtime/gc_root.h
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2015-02-23 11:14:40 -0800
committerHiroshi Yamauchi <yamauchi@google.com>2015-02-23 11:25:51 -0800
commit9e47bfa71d42df101aff9d156a1b296eaf6566a2 (patch)
tree5122555b45668ab6cf0037772ffb50aacf46142e /runtime/gc_root.h
parentd98ff78976696fdde1e7868d4687719a0439544b (diff)
downloadart-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.h2
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_);