Bug 945844 - Fix build error when compiling with GGC enabled and initialise store buffer reentry check member r=sfink
authorJon Coppeard <jcoppeard@mozilla.com>
Wed, 04 Dec 2013 11:02:47 +0000
changeset 174447 d791c9be9a6ea664c203973a4bc2ac23041c0778
parent 174446 c0b9123264b9bac6d7ed272ea7887715ae721cf0
child 174448 b947d59fe3c156b51211ae5dce5c7d35a4f4e3a9
push id445
push userffxbld
push dateMon, 10 Mar 2014 22:05:19 +0000
treeherdermozilla-release@dc38b741b04e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssfink
bugs945844
milestone28.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 945844 - Fix build error when compiling with GGC enabled and initialise store buffer reentry check member r=sfink
js/src/gc/StoreBuffer.h
js/src/jsweakmap.cpp
--- a/js/src/gc/StoreBuffer.h
+++ b/js/src/gc/StoreBuffer.h
@@ -393,17 +393,18 @@ class StoreBuffer
     bool aboutToOverflow_;
     bool enabled_;
     mozilla::DebugOnly<bool> entered; /* For ReentrancyGuard. */
 
   public:
     explicit StoreBuffer(JSRuntime *rt, const Nursery &nursery)
       : bufferVal(), bufferCell(), bufferSlot(), bufferWholeCell(),
         bufferRelocVal(), bufferRelocCell(), bufferGeneric(),
-        runtime_(rt), nursery_(nursery), aboutToOverflow_(false), enabled_(false)
+        runtime_(rt), nursery_(nursery), aboutToOverflow_(false), enabled_(false),
+        entered(false)
     {
     }
 
     bool enable();
     void disable();
     bool isEnabled() const { return enabled_; }
 
     bool clear();
--- a/js/src/jsweakmap.cpp
+++ b/js/src/jsweakmap.cpp
@@ -272,17 +272,17 @@ static inline void
 WeakMapPostWriteBarrier(JSRuntime *rt, ObjectValueMap *map, JSObject *key)
 {
 #ifdef JSGC_GENERATIONAL
     /*
      * Strip the barriers from the type before inserting into the store buffer.
      * This will automatically ensure that barriers do not fire during GC.
      */
     typedef WeakMap<JSObject *, Value> UnbarrieredObjectValueMap;
-    typedef HashKeyRef<UnbarrieredObjectValueMap, JSObject *> Ref;
+    typedef gc::HashKeyRef<UnbarrieredObjectValueMap, JSObject *> Ref;
     if (key && IsInsideNursery(rt, key))
         rt->gcStoreBuffer.putGeneric(Ref(reinterpret_cast<UnbarrieredObjectValueMap *>(map), key));
 #endif
 }
 
 JS_ALWAYS_INLINE bool
 WeakMap_set_impl(JSContext *cx, CallArgs args)
 {