Bug 879831, part 4 - Make vm/String-inl.h not include gc/Barrier-inl.h, breaking an #include cycle. Make vm/Shape-inl.h not #include itself. r=njn.
authorJason Orendorff <jorendorff@mozilla.com>
Thu, 06 Jun 2013 22:48:32 -0500
changeset 145825 2f0134cd42e2859420eb80e480c0e36858315ed5
parent 145824 2f5b1bd1ca458cd69c8311eaad3847fc7bffdeb9
child 145826 8637d0b818fe0c7cc8c0c4810789c9103801d41b
push id2697
push userbbajaj@mozilla.com
push dateMon, 05 Aug 2013 18:49:53 +0000
treeherdermozilla-beta@dfec938c7b63 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnjn
bugs879831
milestone24.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 879831, part 4 - Make vm/String-inl.h not include gc/Barrier-inl.h, breaking an #include cycle. Make vm/Shape-inl.h not #include itself. r=njn.
js/src/gc/Statistics.cpp
js/src/jsatominlines.h
js/src/jsobjinlines.h
js/src/vm/ObjectImpl-inl.h
js/src/vm/Shape-inl.h
js/src/vm/String-inl.h
--- a/js/src/gc/Statistics.cpp
+++ b/js/src/gc/Statistics.cpp
@@ -16,16 +16,17 @@
 #include "jsprf.h"
 #include "jsprobes.h"
 #include "jsutil.h"
 #include "prmjtime.h"
 
 #include "gc/Memory.h"
 #include "gc/Statistics.h"
 
+#include "jscntxtinlines.h"
 #include "gc/Barrier-inl.h"
 
 using namespace js;
 using namespace js::gcstats;
 
 using mozilla::PodArrayZero;
 
 /* Except for the first and last, slices of less than 42ms are not reported. */
--- a/js/src/jsatominlines.h
+++ b/js/src/jsatominlines.h
@@ -9,17 +9,16 @@
 
 #include "mozilla/PodOperations.h"
 #include "mozilla/RangedPtr.h"
 
 #include "jsatom.h"
 #include "jsnum.h"
 #include "jsobj.h"
 #include "jsstr.h"
-
 #include "gc/Barrier.h"
 #include "vm/String.h"
 
 inline JSAtom *
 js::AtomStateEntry::asPtr() const
 {
     JS_ASSERT(bits != 0);
     JSAtom *atom = reinterpret_cast<JSAtom *>(bits & NO_TAG_MASK);
--- a/js/src/jsobjinlines.h
+++ b/js/src/jsobjinlines.h
@@ -1287,22 +1287,16 @@ JSObject::getElementAttributes(JSContext
 JSObject::getSpecialAttributes(JSContext *cx, js::HandleObject obj,
                                js::SpecialId sid, unsigned *attrsp)
 {
     JS::RootedId id(cx, SPECIALID_TO_JSID(sid));
     return getGenericAttributes(cx, obj, id, attrsp);
 }
 
 inline bool
-js::ObjectImpl::isProxy() const
-{
-    return js::IsProxy(const_cast<JSObject*>(this->asObjectPtr()));
-}
-
-inline bool
 JSObject::isCrossCompartmentWrapper() const
 {
     return js::IsCrossCompartmentWrapper(const_cast<JSObject*>(this));
 }
 
 inline bool
 JSObject::isWrapper() const
 {
--- a/js/src/vm/ObjectImpl-inl.h
+++ b/js/src/vm/ObjectImpl-inl.h
@@ -223,16 +223,22 @@ js::ObjectImpl::initializeSlotRange(uint
 }
 
 inline bool
 js::ObjectImpl::isNative() const
 {
     return lastProperty()->isNative();
 }
 
+inline bool
+js::ObjectImpl::isProxy() const
+{
+    return js::IsProxy(const_cast<JSObject*>(this->asObjectPtr()));
+}
+
 inline js::HeapSlot &
 js::ObjectImpl::nativeGetSlotRef(uint32_t slot)
 {
     MOZ_ASSERT(isNative());
     MOZ_ASSERT(slot < slotSpan());
     return getSlotRef(slot);
 }
 
--- a/js/src/vm/Shape-inl.h
+++ b/js/src/vm/Shape-inl.h
@@ -2,31 +2,29 @@
  * vim: set ts=8 sts=4 et sw=4 tw=99:
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef Shape_inl_h__
 #define Shape_inl_h__
 
-#include "mozilla/DebugOnly.h"
 #include "mozilla/PodOperations.h"
 
 #include "jsarray.h"
 #include "jsbool.h"
 #include "jscntxt.h"
 #include "jsdbgapi.h"
 #include "jsfun.h"
 #include "jsgc.h"
 #include "jsobj.h"
 
 #include "gc/Marking.h"
 #include "vm/ArgumentsObject.h"
 #include "vm/ScopeObject.h"
-#include "vm/Shape-inl.h"
 #include "vm/StringObject.h"
 
 #include "jscntxtinlines.h"
 #include "jsgcinlines.h"
 #include "jsobjinlines.h"
 
 #include "vm/ScopeObject-inl.h"
 
--- a/js/src/vm/String-inl.h
+++ b/js/src/vm/String-inl.h
@@ -12,18 +12,16 @@
 #include "jscntxt.h"
 #include "jsprobes.h"
 
 #include "gc/Marking.h"
 #include "String.h"
 
 #include "jsgcinlines.h"
 #include "jsobjinlines.h"
-#include "gc/Barrier-inl.h"
-#include "gc/StoreBuffer.h"
 
 namespace js {
 
 template <AllowGC allowGC>
 static JS_ALWAYS_INLINE JSInlineString *
 NewShortString(JSContext *cx, JS::Latin1Chars chars)
 {
     size_t len = chars.length();