author | Kyle Huey <khuey@kylehuey.com> |
Thu, 29 Dec 2011 15:45:51 -0500 | |
changeset 83497 | 972982711eb315c39a18a111d4109dfea03fcd84 |
parent 83496 | ef6d44e6087546920da248d9d369f143082709b0 |
child 83498 | 314f940ca86ea3bec225cbcd477e35573eb8fca8 |
push id | 4453 |
push user | khuey@mozilla.com |
push date | Thu, 29 Dec 2011 20:46:13 +0000 |
treeherder | mozilla-inbound@972982711eb3 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 711895 |
milestone | 12.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
|
configure.in | file | annotate | diff | comparison | revisions | |
content/xslt/src/base/txExpandedNameMap.h | file | annotate | diff | comparison | revisions | |
gfx/ycbcr/QuellGccWarnings.patch | file | annotate | diff | comparison | revisions | |
gfx/ycbcr/README | file | annotate | diff | comparison | revisions | |
gfx/ycbcr/update.sh | file | annotate | diff | comparison | revisions | |
gfx/ycbcr/yuv_convert.cpp | file | annotate | diff | comparison | revisions | |
gfx/ycbcr/yuv_row.h | file | annotate | diff | comparison | revisions | |
js/src/configure.in | file | annotate | diff | comparison | revisions | |
js/src/jsarray.cpp | file | annotate | diff | comparison | revisions | |
js/src/jsgc.cpp | file | annotate | diff | comparison | revisions | |
js/src/jstypedarray.cpp | file | annotate | diff | comparison | revisions | |
layout/generic/nsHTMLReflowMetrics.h | file | annotate | diff | comparison | revisions |
--- a/configure.in +++ b/configure.in @@ -1859,65 +1859,46 @@ if test "$GNU_CC"; then fi WARNINGS_AS_ERRORS='-Werror' DSO_CFLAGS='' DSO_PIC_CFLAGS='-fPIC' ASFLAGS="$ASFLAGS -fPIC" _MOZ_RTTI_FLAGS_ON=-frtti _MOZ_RTTI_FLAGS_OFF=-fno-rtti - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Werror=declaration-after-statement - MSVC doesn't like these - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement -Wempty-body" - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Woverlength-strings - we exceed the minimum maximum length all the time - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-overlength-strings" - + # Turn on GNU specific features + # -Wall - turn on all warnings + # -pedantic - make compiler warn about non-ANSI stuff, and + # be a little bit stricter + # -Wdeclaration-after-statement - MSVC doesn't like these + # Warnings slamm took out for now (these were giving more noise than help): + # -Wbad-function-cast - warns when casting a function to a new return type + # -Wshadow - removed because it generates more noise than help --pete + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith -Wdeclaration-after-statement" if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" ;; esac fi dnl Turn pedantic on but disable the warnings for long long _PEDANTIC=1 + if test -z "$INTEL_CC"; then + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W" + fi + _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT' _USE_CPP_INCLUDE_FLAG=1 - - AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, - ac_cc_has_wtype_limits, - [ - AC_LANG_SAVE - AC_LANG_C - _SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Wtype-limits" - AC_TRY_COMPILE([], - [return(0);], - ac_cc_has_wtype_limits="yes", - ac_cc_has_wtype_limits="no") - CFLAGS="$_SAVE_CFLAGS" - AC_LANG_RESTORE - ]) - if test "$ac_cc_has_wtype_limits" = "yes"; then - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wtype-limits" - fi elif test "$SOLARIS_SUNPRO_CC"; then DSO_CFLAGS='' if test "$CPU_ARCH" = "sparc"; then # for Sun Studio on Solaris/SPARC DSO_PIC_CFLAGS='-xcode=pic32' else DSO_PIC_CFLAGS='-KPIC' fi @@ -1935,32 +1916,18 @@ else DSO_CFLAGS='' DSO_PIC_CFLAGS='-KPIC' _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT' fi if test "$GNU_CXX"; then # FIXME: Let us build with strict aliasing. bug 414641. CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing" - - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Woverloaded-virtual - ??? - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wempty-body" - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Woverlength-strings - we exceed the minimum maximum length all the time - # -Wctor-dtor-privacy - ??? - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-overlength-strings -Wno-ctor-dtor-privacy" - + # Turn on GNU specific features + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" @@ -2051,34 +2018,16 @@ if test "$GNU_CXX"; then ac_has_werror_return_type="no") CXXFLAGS="$_SAVE_CXXFLAGS" AC_LANG_RESTORE ]) if test "$ac_has_werror_return_type" = "yes"; then _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type" fi - AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, - ac_has_wtype_limits, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - _SAVE_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -Wtype-limits" - AC_TRY_COMPILE([], - [return(0);], - ac_has_wtype_limits="yes", - ac_has_wtype_limits="no") - CXXFLAGS="$_SAVE_CXXFLAGS" - AC_LANG_RESTORE - ]) - if test "$ac_has_wtype_limits" = "yes"; then - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wtype-limits" - fi - else _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)' fi dnl gcc can come with its own linker so it is better to use the pass-thru calls dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to dnl normal behavior.
--- a/content/xslt/src/base/txExpandedNameMap.h +++ b/content/xslt/src/base/txExpandedNameMap.h @@ -97,26 +97,28 @@ protected: bool next() { return ++mCurrentPos < mMap.mItems.Length(); } const txExpandedName key() { - NS_ASSERTION(mCurrentPos < mMap.mItems.Length(), + NS_ASSERTION(mCurrentPos >= 0 && + mCurrentPos < mMap.mItems.Length(), "invalid position in txExpandedNameMap::iterator"); return txExpandedName(mMap.mItems[mCurrentPos].mNamespaceID, mMap.mItems[mCurrentPos].mLocalName); } protected: void* itemValue() { - NS_ASSERTION(mCurrentPos < mMap.mItems.Length(), + NS_ASSERTION(mCurrentPos >= 0 && + mCurrentPos < mMap.mItems.Length(), "invalid position in txExpandedNameMap::iterator"); return mMap.mItems[mCurrentPos].mValue; } private: txExpandedNameMap_base& mMap; PRUint32 mCurrentPos; };
deleted file mode 100644 --- a/gfx/ycbcr/QuellGccWarnings.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/gfx/ycbcr/yuv_convert.cpp b/gfx/ycbcr/yuv_convert.cpp ---- a/gfx/ycbcr/yuv_convert.cpp -+++ b/gfx/ycbcr/yuv_convert.cpp -@@ -337,16 +337,17 @@ NS_GFX_(void) ScaleYCbCrToRGB32(const ui - source_dx_uv >> kFractionBits); - } - } - else { - ScaleYUVToRGB32Row_C(y_ptr, u_ptr, v_ptr, - dest_pixel, width, source_dx); - } - #else -+ (void)source_dx_uv; - ScaleYUVToRGB32Row(y_ptr, u_ptr, v_ptr, - dest_pixel, width, source_dx); - #endif - } - } - // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms. - if (has_mmx) - EMMS(); -diff --git a/gfx/ycbcr/yuv_row.h b/gfx/ycbcr/yuv_row.h ---- a/gfx/ycbcr/yuv_row.h -+++ b/gfx/ycbcr/yuv_row.h -@@ -129,14 +129,14 @@ extern SIMD_ALIGNED(int16 kCoefficientsR - #if defined(ARCH_CPU_X86) && !defined(ARCH_CPU_X86_64) - #if defined(_MSC_VER) - #define EMMS() __asm emms - #pragma warning(disable: 4799) - #else - #define EMMS() asm("emms") - #endif - #else --#define EMMS() -+#define EMMS() ((void)0) - #endif - - } // extern "C" - - #endif // MEDIA_BASE_YUV_ROW_H_
--- a/gfx/ycbcr/README +++ b/gfx/ycbcr/README @@ -20,10 +20,8 @@ convert.patch contains the following cha * Add YCbCr 4:4:4 support * Bug 619178 - Update CPU detection in yuv_convert to new SSE.h interface. * Bug 616778 - Split yuv_convert FilterRows vectorized code into separate files so it can be properly guarded with cpuid() calls. win64.patch: SSE2 optimization for Microsoft Visual C++ x64 version TypeFromSize.patch: Bug 656185 - Add a method to detect YUVType from plane sizes. - -QuellGccWarnings.patch: Bug 711895 - Avoid some GCC compilation warnings.
--- a/gfx/ycbcr/update.sh +++ b/gfx/ycbcr/update.sh @@ -4,9 +4,8 @@ cp $1/media/base/yuv_convert.cc yuv_conv cp $1/media/base/yuv_row.h . cp $1/media/base/yuv_row_table.cc yuv_row_table.cpp cp $1/media/base/yuv_row_posix.cc yuv_row_posix.cpp cp $1/media/base/yuv_row_win.cc yuv_row_win.cpp cp $1/media/base/yuv_row_posix.cc yuv_row_c.cpp patch -p3 <convert.patch patch -p3 <win64.patch patch -p3 <TypeFromSize.patch -patch -p3 <QuellGccWarnings.patch
--- a/gfx/ycbcr/yuv_convert.cpp +++ b/gfx/ycbcr/yuv_convert.cpp @@ -337,17 +337,16 @@ NS_GFX_(void) ScaleYCbCrToRGB32(const ui source_dx_uv >> kFractionBits); } } else { ScaleYUVToRGB32Row_C(y_ptr, u_ptr, v_ptr, dest_pixel, width, source_dx); } #else - (void)source_dx_uv; ScaleYUVToRGB32Row(y_ptr, u_ptr, v_ptr, dest_pixel, width, source_dx); #endif } } // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms. if (has_mmx) EMMS();
--- a/gfx/ycbcr/yuv_row.h +++ b/gfx/ycbcr/yuv_row.h @@ -129,14 +129,14 @@ extern SIMD_ALIGNED(int16 kCoefficientsR #if defined(ARCH_CPU_X86) && !defined(ARCH_CPU_X86_64) #if defined(_MSC_VER) #define EMMS() __asm emms #pragma warning(disable: 4799) #else #define EMMS() asm("emms") #endif #else -#define EMMS() ((void)0) +#define EMMS() #endif } // extern "C" #endif // MEDIA_BASE_YUV_ROW_H_
--- a/js/src/configure.in +++ b/js/src/configure.in @@ -1801,65 +1801,45 @@ if test "$GNU_CC"; then fi WARNINGS_AS_ERRORS='-Werror' DSO_CFLAGS='' DSO_PIC_CFLAGS='-fPIC' ASFLAGS="$ASFLAGS -fPIC" _MOZ_RTTI_FLAGS_ON=-frtti _MOZ_RTTI_FLAGS_OFF=-fno-rtti - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Wdeclaration-after-statement - MSVC doesn't like these - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement -Wempty-body" - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Woverlength-strings - we exceed the minimum maximum length all the time - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-overlength-strings" - + # Turn on GNU specific features + # -Wall - turn on all warnings + # -pedantic - make compiler warn about non-ANSI stuff, and + # be a little bit stricter + # Warnings slamm took out for now (these were giving more noise than help): + # -Wbad-function-cast - warns when casting a function to a new return type + # -Wshadow - removed because it generates more noise than help --pete + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith" if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" ;; esac fi dnl Turn pedantic on but disable the warnings for long long _PEDANTIC=1 + if test -z "$INTEL_CC"; then + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W" + fi + _DEFINES_CFLAGS='-include $(DEPTH)/js-confdefs.h -DMOZILLA_CLIENT' _USE_CPP_INCLUDE_FLAG=1 - - AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, - ac_cc_has_wtype_limits, - [ - AC_LANG_SAVE - AC_LANG_C - _SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Wtype-limits" - AC_TRY_COMPILE([], - [return(0);], - ac_cc_has_wtype_limits="yes", - ac_cc_has_wtype_limits="no") - CFLAGS="$_SAVE_CFLAGS" - AC_LANG_RESTORE - ]) - if test "$ac_cc_has_wtype_limits" = "yes"; then - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wtype-limits" - fi elif test "$SOLARIS_SUNPRO_CC"; then DSO_CFLAGS='' if test "$CPU_ARCH" = "sparc"; then # for Sun Studio on Solaris/SPARC DSO_PIC_CFLAGS='-xcode=pic32' else DSO_PIC_CFLAGS='-KPIC' fi @@ -1875,31 +1855,18 @@ else fi DSO_CFLAGS='' DSO_PIC_CFLAGS='-KPIC' _DEFINES_CFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT' fi if test "$GNU_CXX"; then - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Woverloaded-virtual - ??? - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wempty-body" - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Woverlength-strings - we exceed the minimum maximum length all the time - # -Wctor-dtor-privacy - ??? - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-overlength-strings -Wno-ctor-dtor-privacy" - + # Turn on GNU specific features + _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) ;; *) _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" @@ -1990,34 +1957,16 @@ if test "$GNU_CXX"; then ac_has_werror_return_type="no") CXXFLAGS="$_SAVE_CXXFLAGS" AC_LANG_RESTORE ]) if test "$ac_has_werror_return_type" = "yes"; then _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type" fi - AC_CACHE_CHECK(whether the compiler supports -Wtype-limits, - ac_has_wtype_limits, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - _SAVE_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -Wtype-limits" - AC_TRY_COMPILE([], - [return(0);], - ac_has_wtype_limits="yes", - ac_has_wtype_limits="no") - CXXFLAGS="$_SAVE_CXXFLAGS" - AC_LANG_RESTORE - ]) - if test "$ac_has_wtype_limits" = "yes"; then - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wtype-limits" - fi - else _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_JS_CONFDEFS_H_ $(ACDEFINES)' fi dnl gcc can come with its own linker so it is better to use the pass-thru calls dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to dnl normal behavior.
--- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -400,33 +400,20 @@ DoGetElement(JSContext *cx, JSObject *ob *hole = !present; if (*hole) vp->setUndefined(); return true; } template<typename IndexType> -static void -AssertGreaterThanZero(IndexType index) -{ - JS_ASSERT(index >= 0); -} - -template<> -void -AssertGreaterThanZero(jsuint index) -{ -} - -template<typename IndexType> static JSBool GetElement(JSContext *cx, JSObject *obj, IndexType index, JSBool *hole, Value *vp) { - AssertGreaterThanZero(index); + JS_ASSERT(index >= 0); if (obj->isDenseArray() && index < obj->getDenseArrayInitializedLength() && !(*vp = obj->getDenseArrayElement(uint32_t(index))).isMagic(JS_ARRAY_HOLE)) { *hole = JS_FALSE; return JS_TRUE; } if (obj->isArguments()) { if (obj->asArguments()->getElement(uint32_t(index), vp)) { *hole = JS_FALSE;
--- a/js/src/jsgc.cpp +++ b/js/src/jsgc.cpp @@ -1337,17 +1337,17 @@ JSRuntime::setGCLastBytes(size_t lastByt size_t base = gckind == GC_SHRINK ? lastBytes : Max(lastBytes, GC_ALLOCATION_THRESHOLD); float trigger = float(base) * GC_HEAP_GROWTH_FACTOR; gcTriggerBytes = size_t(Min(float(gcMaxBytes), trigger)); } void JSRuntime::reduceGCTriggerBytes(uint32_t amount) { JS_ASSERT(amount > 0); - JS_ASSERT(gcTriggerBytes >= amount); + JS_ASSERT(gcTriggerBytes - amount >= 0); if (gcTriggerBytes - amount < GC_ALLOCATION_THRESHOLD * GC_HEAP_GROWTH_FACTOR) return; gcTriggerBytes -= amount; } void JSCompartment::setGCLastBytes(size_t lastBytes, JSGCInvocationKind gckind) { @@ -1356,17 +1356,17 @@ JSCompartment::setGCLastBytes(size_t las size_t base = gckind == GC_SHRINK ? lastBytes : Max(lastBytes, GC_ALLOCATION_THRESHOLD); float trigger = float(base) * GC_HEAP_GROWTH_FACTOR; gcTriggerBytes = size_t(Min(float(rt->gcMaxBytes), trigger)); } void JSCompartment::reduceGCTriggerBytes(uint32_t amount) { JS_ASSERT(amount > 0); - JS_ASSERT(gcTriggerBytes >= amount); + JS_ASSERT(gcTriggerBytes - amount >= 0); if (gcTriggerBytes - amount < GC_ALLOCATION_THRESHOLD * GC_HEAP_GROWTH_FACTOR) return; gcTriggerBytes -= amount; } namespace js { namespace gc {
--- a/js/src/jstypedarray.cpp +++ b/js/src/jstypedarray.cpp @@ -1682,17 +1682,19 @@ class TypedArrayTemplate static void copyIndexToValue(JSContext *cx, JSObject *tarray, uint32_t index, Value *vp); static JSObject * createSubarray(JSContext *cx, JSObject *tarray, uint32_t begin, uint32_t end) { JS_ASSERT(tarray); + JS_ASSERT(0 <= begin); JS_ASSERT(begin <= getLength(tarray)); + JS_ASSERT(0 <= end); JS_ASSERT(end <= getLength(tarray)); JSObject *bufobj = getBuffer(tarray); JS_ASSERT(bufobj); JS_ASSERT(begin <= end); uint32_t length = end - begin;
--- a/layout/generic/nsHTMLReflowMetrics.h +++ b/layout/generic/nsHTMLReflowMetrics.h @@ -66,21 +66,21 @@ enum nsOverflowType { eVisualOverflow, e for (nsOverflowType var_ = nsOverflowType(0); var_ < 2; \ var_ = nsOverflowType(var_ + 1)) struct nsOverflowAreas { private: nsRect mRects[2]; public: nsRect& Overflow(size_t aIndex) { - NS_ASSERTION(aIndex < 2, "index out of range"); + NS_ASSERTION(0 <= aIndex && aIndex < 2, "index out of range"); return mRects[aIndex]; } const nsRect& Overflow(size_t aIndex) const { - NS_ASSERTION(aIndex < 2, "index out of range"); + NS_ASSERTION(0 <= aIndex && aIndex < 2, "index out of range"); return mRects[aIndex]; } nsRect& VisualOverflow() { return mRects[eVisualOverflow]; } const nsRect& VisualOverflow() const { return mRects[eVisualOverflow]; } nsRect& ScrollableOverflow() { return mRects[eScrollableOverflow]; } const nsRect& ScrollableOverflow() const { return mRects[eScrollableOverflow]; }