diff --git a/src/heap.h b/src/heap.h
index bbd05db..d4d43e7 100644
--- a/src/heap.h
+++ b/src/heap.h
@@ -67,6 +67,48 @@
     return mark_bitmap_;
   }
 
+  static void SetReferenceOffsets(size_t reference_referent_offset,
+                                  size_t reference_queue_offset,
+                                  size_t reference_queueNext_offset,
+                                  size_t reference_pendingNext_offset,
+                                  size_t finalizer_reference_zombie_offset) {
+    CHECK_NE(reference_referent_offset, 0U);
+    CHECK_NE(reference_queue_offset, 0U);
+    CHECK_NE(reference_queueNext_offset, 0U);
+    CHECK_NE(reference_pendingNext_offset, 0U);
+    CHECK_NE(finalizer_reference_zombie_offset, 0U);
+    reference_referent_offset_ = reference_referent_offset;
+    reference_queue_offset_ = reference_queue_offset;
+    reference_queueNext_offset_ = reference_queueNext_offset;
+    reference_pendingNext_offset_ = reference_pendingNext_offset;
+    finalizer_reference_zombie_offset_ = finalizer_reference_zombie_offset;
+  }
+
+  static size_t GetReferenceReferentOffset() {
+    DCHECK_NE(reference_referent_offset_, 0U);
+    return reference_referent_offset_;
+  }
+
+  static size_t GetReferenceQueueOffset() {
+    DCHECK_NE(reference_queue_offset_, 0U);
+    return reference_queue_offset_;
+  }
+
+  static size_t GetReferenceQueueNextOffset() {
+    DCHECK_NE(reference_queueNext_offset_, 0U);
+    return reference_queueNext_offset_;
+  }
+
+  static size_t GetReferencePendingNextOffset() {
+    DCHECK_NE(reference_pendingNext_offset_, 0U);
+    return reference_pendingNext_offset_;
+  }
+
+  static size_t GetFinalizerReferenceZombieOffset() {
+    DCHECK_NE(finalizer_reference_zombie_offset_, 0U);
+    return finalizer_reference_zombie_offset_;
+  }
+
  private:
   // Allocates uninitialized storage.
   static Object* Allocate(size_t num_bytes);
@@ -108,6 +150,21 @@
   // free.
   static size_t num_objects_allocated_;
 
+  // offset of java.lang.ref.Reference.referent
+  static size_t reference_referent_offset_;
+
+  // offset of java.lang.ref.Reference.queue
+  static size_t reference_queue_offset_;
+
+  // offset of java.lang.ref.Reference.queueNext
+  static size_t reference_queueNext_offset_;
+
+  // offset of java.lang.ref.Reference.pendingNext
+  static size_t reference_pendingNext_offset_;
+
+  // offset of java.lang.ref.FinalizerReference.zombie
+  static size_t finalizer_reference_zombie_offset_;
+
   DISALLOW_IMPLICIT_CONSTRUCTORS(Heap);
 };
 
