diff --git a/aclocal.m4 b/aclocal.m4 index efaca9b457d3..2e6734a9440a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -16,6 +16,7 @@ builtin(include, build/autoconf/mozheader.m4)dnl builtin(include, build/autoconf/acwinpaths.m4)dnl builtin(include, build/autoconf/lto.m4)dnl builtin(include, build/autoconf/gcc-pr49911.m4)dnl +builtin(include, build/autoconf/frameptr.m4)dnl MOZ_PROG_CHECKMSYS() diff --git a/browser/branding/nightly/pref/firefox-branding.js b/browser/branding/nightly/pref/firefox-branding.js index ddcafbd00e9b..13e9dd53c86e 100644 --- a/browser/branding/nightly/pref/firefox-branding.js +++ b/browser/branding/nightly/pref/firefox-branding.js @@ -1,7 +1,8 @@ pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); // The time interval between checks for a new version (in seconds) -pref("app.update.interval", 7200); // 2 hours +// nightly=8 hours, official=24 hours +pref("app.update.interval", 28800); // The time interval between the downloading of mar file chunks in the // background (in seconds) pref("app.update.download.backgroundInterval", 60); diff --git a/browser/branding/unofficial/pref/firefox-branding.js b/browser/branding/unofficial/pref/firefox-branding.js index b3e8634aa003..17a7ce468e1d 100644 --- a/browser/branding/unofficial/pref/firefox-branding.js +++ b/browser/branding/unofficial/pref/firefox-branding.js @@ -1,7 +1,8 @@ pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/"); pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/"); // The time interval between checks for a new version (in seconds) -pref("app.update.interval", 86400); // 24 hours +// nightly=8 hours, official=24 hours +pref("app.update.interval", 28800); // The time interval between the downloading of mar file chunks in the // background (in seconds) pref("app.update.download.backgroundInterval", 60); diff --git a/browser/locales/en-US/searchplugins/list.txt b/browser/locales/en-US/searchplugins/list.txt index 7c7d9ee7a1ef..2a1141a984f7 100644 --- a/browser/locales/en-US/searchplugins/list.txt +++ b/browser/locales/en-US/searchplugins/list.txt @@ -2,5 +2,6 @@ amazondotcom bing eBay google +twitter wikipedia yahoo diff --git a/browser/locales/en-US/searchplugins/twitter.xml b/browser/locales/en-US/searchplugins/twitter.xml new file mode 100644 index 000000000000..9f1850a59c7b --- /dev/null +++ b/browser/locales/en-US/searchplugins/twitter.xml @@ -0,0 +1,11 @@ + +Twitter +Realtime Twitter Search +UTF-8 +data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+D/7+/j/+/v5g/v7+YP7+/mD+/v5I/v7+KP///wD///8A////AP///wD///8A////AP///wD+/v4H/v7+UPbv4pHgx47B1K9Y3tWwWN7Ur1je3sKCx+rbuKj+/v5n/v7+GP///wD///8A////AP///wD+/v4Y+fbweM2ycMe2iB7/vI0f/8STIf/KlyL/zJki/8yZIv/LmCL/0ahK5/Hp1JH+/v4Y////AP///wD///8A7OTTaquHN+CujkXPs5ZTv6N6G/+2iB7/xpUh/8yZIv/MmSL/zJki/8yZIv/Kmy738OjUi////wD///8A////AMKtfY7w6+Ef////AP///wD///8A3sqbp8iWIf/MmSL/zJki/8yZIv/MmSL/y5gi/8mePO7+/v4w////AP///wD///8A////AP///wD+/v4H/v7+V9CtWN3KmCL/zJki/8yZIv/MmSL/zJki/8yZIv/JlyH/5tSqp/7+/mD+/v4/////AP///wD///8A+PXvJtGyZdXNnS/3y5gi/8qYIv/LmCL/zJki/8yZIv/MmSL/y5gi/82iPO7LqVfe0byMmf///wD///8A/v7+D/Do1JHKmy73ypci/8KSIP+/jyD/xpQh/8uYIv/MmSL/zJki/8qYIv+/jyD/rIEd/9nKqH7///8A////APPu4TzAlSz3wZEg/7mLH/+sgR3/uZdGz7mLH//JlyH/zJki/8yZIv/GlSH/to0r9eXbxD/Vx6dg////AP7+/h/p38WhtIsq9al/HP+kfyjuybaKgf///wCzjzjlwJAg/8qYIv/JlyH/u4wf/8CkYrn///8A////AP///wDj2sRMnHUa/7meYa7Vx6dg////AP///wD///8A2MmnYK6DHf++jiD/vo4g/62CHf/k2sQ/////AP///wD///8A8OvhH/f07w////8A////AP///wD///8A////AP///wC/p3Cfpnwc/66GKvPg1LZ8////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANXHp2DJtoqByLWKgf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AADgPwAAwA8AAIAHAAB4BwAA+AMAAPAAAADgAQAA4AMAAMEDAADPhwAA/48AAP/nAAD//wAA//8AAA== +https://twitter.com/search/ + + + + + diff --git a/build/autoconf/frameptr.m4 b/build/autoconf/frameptr.m4 new file mode 100644 index 000000000000..77a6d71aedc8 --- /dev/null +++ b/build/autoconf/frameptr.m4 @@ -0,0 +1,25 @@ +dnl Set MOZ_FRAMEPTR_FLAGS to the flags that should be used for enabling or +dnl disabling frame pointers in this architecture based on the configure +dnl options + +AC_DEFUN([MOZ_SET_FRAMEPTR_FLAGS], [ + if test "$GNU_CC"; then + MOZ_ENABLE_FRAME_PTR="-fno-omit-frame-pointer" + MOZ_DISABLE_FRAME_PTR="-fomit-frame-pointer" + else + case "$target" in + *-mingw*) + MOZ_ENABLE_FRAME_PTR="-Oy-" + MOZ_DISABLE_FRAME_PTR="-Oy" + ;; + esac + fi + + # if we are debugging or profiling, we want a frame pointer. + if test -z "$MOZ_OPTIMIZE" -o \ + -n "$MOZ_PROFILING" -o -n "$MOZ_DEBUG"; then + MOZ_FRAMEPTR_FLAGS="$MOZ_ENABLE_FRAME_PTR" + else + MOZ_FRAMEPTR_FLAGS="$MOZ_DISABLE_FRAME_PTR" + fi +]) diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in index ea68d9fcc3f0..52ccb44c59b5 100644 --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in @@ -303,6 +303,7 @@ ACDEFINES = @MOZ_DEFINES@ WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@ MOZ_OPTIMIZE = @MOZ_OPTIMIZE@ +MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@ MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@ MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@ MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@ diff --git a/config/config.mk b/config/config.mk index 54c03ed8e989..bfb2c1596945 100644 --- a/config/config.mk +++ b/config/config.mk @@ -463,6 +463,9 @@ endif # MOZ_OPTIMIZE == 1 endif # MOZ_OPTIMIZE endif # CROSS_COMPILE +CFLAGS += $(MOZ_FRAMEPTR_FLAGS) +CXXFLAGS += $(MOZ_FRAMEPTR_FLAGS) + # Check for FAIL_ON_WARNINGS & FAIL_ON_WARNINGS_DEBUG (Shorthand for Makefiles # to request that we use the 'warnings as errors' compile flags) diff --git a/configure.in b/configure.in index cc0305262a09..261d86765953 100644 --- a/configure.in +++ b/configure.in @@ -2071,12 +2071,7 @@ case "$target" in *-darwin*) MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS="-O3 -fomit-frame-pointer" - else - MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer" - fi + MOZ_OPTIMIZE_FLAGS="-O3" _PEDANTIC= CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" @@ -2188,12 +2183,7 @@ ia64*-hpux*) TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' MOZ_GFX_OPTIMIZE_MOBILE=1 - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fomit-frame-pointer" - else - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fno-omit-frame-pointer" - fi + MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions" ;; *-*linux*) @@ -2211,14 +2201,8 @@ ia64*-hpux*) # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results. MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50" esac - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS" - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS" + MOZ_PGO_OPTIMIZE_FLAGS="-O3" + MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK" MOZ_DEBUG_FLAGS="-g" fi @@ -2315,12 +2299,7 @@ ia64*-hpux*) MOZ_DEBUG_FLAGS='-Zi' MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' WARNINGS_AS_ERRORS='-WX' - # If we're building with --enable-profiling, we need -Oy-, which forces a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS='-O1' - else - MOZ_OPTIMIZE_FLAGS='-O1 -Oy-' - fi + MOZ_OPTIMIZE_FLAGS='-O1' MOZ_FIX_LINK_PATHS= DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib' @@ -6897,6 +6876,8 @@ else MOZ_OPTIMIZE= fi ], MOZ_OPTIMIZE=1) +MOZ_SET_FRAMEPTR_FLAGS + if test "$COMPILE_ENVIRONMENT"; then if test -n "$MOZ_OPTIMIZE"; then AC_MSG_CHECKING([for valid optimization flags]) @@ -6915,6 +6896,7 @@ fi fi # COMPILE_ENVIRONMENT AC_SUBST(MOZ_OPTIMIZE) +AC_SUBST(MOZ_FRAMEPTR_FLAGS) AC_SUBST(MOZ_OPTIMIZE_FLAGS) AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK) diff --git a/content/smil/crashtests/678847-1.svg b/content/smil/crashtests/678847-1.svg deleted file mode 100644 index 1fa2718cbb75..000000000000 --- a/content/smil/crashtests/678847-1.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/content/smil/crashtests/678938-1.svg b/content/smil/crashtests/678938-1.svg deleted file mode 100644 index f3f8308fa50f..000000000000 --- a/content/smil/crashtests/678938-1.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/content/smil/crashtests/crashtests.list b/content/smil/crashtests/crashtests.list index d3e0f95ee2f5..631dfb9403d2 100644 --- a/content/smil/crashtests/crashtests.list +++ b/content/smil/crashtests/crashtests.list @@ -37,8 +37,6 @@ load 615872-1.svg load 650732-1.svg load 665334-1.svg load 669225-1.svg -load 669225-2.svg load 670313-1.svg +load 669225-2.svg load 678822-1.svg -load 678847-1.svg -load 678938-1.svg diff --git a/content/smil/nsSMILAnimationFunction.cpp b/content/smil/nsSMILAnimationFunction.cpp index b7866cc93a58..1763381c0ad2 100644 --- a/content/smil/nsSMILAnimationFunction.cpp +++ b/content/smil/nsSMILAnimationFunction.cpp @@ -478,21 +478,6 @@ nsSMILAnimationFunction::InterpolateResult(const nsSMILValueArray& aValues, if (calcMode == CALC_DISCRETE || NS_FAILED(rv)) { double scaledSimpleProgress = ScaleSimpleProgress(simpleProgress, CALC_DISCRETE); - - // Floating-point errors can mean that, for example, a sample time of 29s in - // a 100s duration animation gives us a simple progress of 0.28999999999 - // instead of the 0.29 we'd expect. Normally this isn't a noticeable - // problem, but when we have sudden jumps in animation values (such as is - // the case here with discrete animation) we can get unexpected results. - // - // To counteract this, before we perform a floor() on the animation - // progress, we add a tiny fudge factor to push us into the correct interval - // in cases where floating-point errors might cause us to fall short. - static const double kFloatingPointFudgeFactor = 1.0e-16; - if (scaledSimpleProgress + kFloatingPointFudgeFactor <= 1.0) { - scaledSimpleProgress += kFloatingPointFudgeFactor; - } - if (IsToAnimation()) { // We don't follow SMIL 3, 12.6.4, where discrete to animations // are the same as animations. Instead, we treat it as a diff --git a/content/smil/nsSMILTimedElement.cpp b/content/smil/nsSMILTimedElement.cpp index c754dc937494..d3eec352d69b 100644 --- a/content/smil/nsSMILTimedElement.cpp +++ b/content/smil/nsSMILTimedElement.cpp @@ -758,10 +758,10 @@ nsSMILTimedElement::Rewind() mSeekState == SEEK_BACKWARD_FROM_ACTIVE, "Rewind in the middle of a forwards seek?"); - // Putting us in the startup state will ensure we skip doing any interval - // updates - mElementState = STATE_STARTUP; ClearIntervals(); + // ClearIntervals puts us in to the POSTACTIVE state but we're doing a full + // rewind so go back to the startup state + mElementState = STATE_STARTUP; UnsetBeginSpec(RemoveNonDynamic); UnsetEndSpec(RemoveNonDynamic); @@ -784,8 +784,6 @@ nsSMILTimedElement::Rewind() mPrevRegisteredMilestone = sMaxMilestone; RegisterMilestone(); - NS_ABORT_IF_FALSE(!mCurrentInterval, - "Current interval is set at end of rewind"); } namespace @@ -1334,9 +1332,7 @@ nsSMILTimedElement::ClearSpecs(TimeValueSpecList& aSpecs, void nsSMILTimedElement::ClearIntervals() { - if (mElementState != STATE_STARTUP) { - mElementState = STATE_POSTACTIVE; - } + mElementState = STATE_POSTACTIVE; mCurrentRepeatIteration = 0; ResetCurrentInterval(); @@ -1688,15 +1684,14 @@ nsSMILTimedElement::GetNextInterval(const nsSMILInterval* aPrevInterval, // a) We never had any end attribute to begin with (and hence we should // just use the active duration after allowing for the possibility of // an end instance provided by a DOM call), OR - // b) We have no resolved (not incl. indefinite) end instances - // (SMIL only says "if the instance list is empty"--but if we have - // indefinite/unresolved instance times then there must be a good - // reason we haven't used them (since they'll be >= tempBegin) such as - // avoiding creating a self-referential loop. In any case, the interval - // should be allowed to be open.), OR + // b) We have an end attribute but no end instances--this is a special + // case that is needed for syncbase timing so that animations of the + // following sort: can be + // resolved (see SVGT 1.2 Test Suite animate-elem-221-t.svg) by first + // establishing an interval of unresolved duration, OR // c) We have end events which leave the interval open-ended. PRBool openEndedIntervalOk = mEndSpecs.IsEmpty() || - !HaveResolvedEndTimes() || + mEndInstances.IsEmpty() || EndHasEventConditions(); if (!tempEnd && !openEndedIntervalOk) return PR_FALSE; // Bad interval @@ -2253,17 +2248,6 @@ nsSMILTimedElement::GetPreviousInterval() const : mOldIntervals[mOldIntervals.Length()-1].get(); } -PRBool -nsSMILTimedElement::HaveResolvedEndTimes() const -{ - if (mEndInstances.IsEmpty()) - return PR_FALSE; - - // mEndInstances is sorted so if the first time is not resolved then none of - // them are - return mEndInstances[0]->Time().IsResolved(); -} - PRBool nsSMILTimedElement::EndHasEventConditions() const { diff --git a/content/smil/nsSMILTimedElement.h b/content/smil/nsSMILTimedElement.h index 9ecd40dcf695..f214df5e5955 100644 --- a/content/smil/nsSMILTimedElement.h +++ b/content/smil/nsSMILTimedElement.h @@ -525,7 +525,6 @@ protected: const nsSMILInstanceTime* GetEffectiveBeginInstance() const; const nsSMILInterval* GetPreviousInterval() const; PRBool HasPlayed() const { return !mOldIntervals.IsEmpty(); } - PRBool HaveResolvedEndTimes() const; PRBool EndHasEventConditions() const; // Reset the current interval by first passing ownership to a temporary diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp index 94f0342d2612..909145ef494a 100644 --- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -48,6 +48,7 @@ #include "AccessCheck.h" #include "xpcprivate.h" +#include "XPCWrapper.h" #include "nscore.h" #include "nsDOMClassInfo.h" @@ -516,7 +517,6 @@ static const char kDOMStringBundleURL[] = #define WINDOW_SCRIPTABLE_FLAGS \ (nsIXPCScriptable::WANT_GETPROPERTY | \ - nsIXPCScriptable::WANT_SETPROPERTY | \ nsIXPCScriptable::WANT_PRECREATE | \ nsIXPCScriptable::WANT_FINALIZE | \ nsIXPCScriptable::WANT_EQUALITY | \ @@ -5269,39 +5269,6 @@ nsWindowSH::GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, return NS_OK; } -NS_IMETHODIMP -nsWindowSH::SetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, - JSObject *obj, jsid id, jsval *vp, PRBool *_retval) -{ - if (id == sLocation_id) { - JSAutoRequest ar(cx); - - JSString *val = ::JS_ValueToString(cx, *vp); - NS_ENSURE_TRUE(val, NS_ERROR_UNEXPECTED); - - nsCOMPtr window = do_QueryWrappedNative(wrapper); - NS_ENSURE_TRUE(window, NS_ERROR_UNEXPECTED); - - nsCOMPtr location; - nsresult rv = window->GetLocation(getter_AddRefs(location)); - NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && location, rv); - - nsCOMPtr holder; - rv = WrapNative(cx, obj, location, &NS_GET_IID(nsIDOMLocation), PR_TRUE, - vp, getter_AddRefs(holder)); - NS_ENSURE_SUCCESS(rv, rv); - - nsDependentJSString depStr; - NS_ENSURE_TRUE(depStr.init(cx, val), NS_ERROR_UNEXPECTED); - - rv = location->SetHref(depStr); - - return NS_FAILED(rv) ? rv : NS_SUCCESS_I_DID_SOMETHING; - } - - return NS_OK; -} - NS_IMETHODIMP nsWindowSH::Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, PRBool *_retval) @@ -6392,6 +6359,68 @@ static JSNewResolveOp sOtherResolveFuncs[] = { mozilla::dom::workers::ResolveWorkerClasses }; +template +static nsresult +LocationSetterGuts(JSContext *cx, JSObject *obj, jsval *vp) +{ + // This function duplicates some of the logic in XPC_WN_HelperSetProperty + XPCWrappedNative *wrapper = + XPCWrappedNative::GetWrappedNativeOfJSObject(cx, obj); + + // The error checks duplicate code in THROW_AND_RETURN_IF_BAD_WRAPPER + NS_ENSURE_TRUE(wrapper, NS_ERROR_XPC_BAD_OP_ON_WN_PROTO); + NS_ENSURE_TRUE(wrapper->IsValid(), NS_ERROR_XPC_HAS_BEEN_SHUTDOWN); + + nsCOMPtr xpcomObj = do_QueryWrappedNative(wrapper); + NS_ENSURE_TRUE(xpcomObj, NS_ERROR_UNEXPECTED); + + nsCOMPtr location; + nsresult rv = xpcomObj->GetLocation(getter_AddRefs(location)); + NS_ENSURE_SUCCESS(rv, rv); + + JSString *val = ::JS_ValueToString(cx, *vp); + NS_ENSURE_TRUE(val, NS_ERROR_UNEXPECTED); + + nsDependentJSString depStr; + NS_ENSURE_TRUE(depStr.init(cx, val), NS_ERROR_UNEXPECTED); + + rv = location->SetHref(depStr); + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr holder; + return WrapNative(cx, JS_GetGlobalForScopeChain(cx), location, + &NS_GET_IID(nsIDOMLocation), PR_TRUE, vp, + getter_AddRefs(holder)); +} + +template +static JSBool +LocationSetter(JSContext *cx, JSObject *obj, jsid id, JSBool strict, + jsval *vp) +{ + nsresult rv = LocationSetterGuts(cx, obj, vp); + if (NS_FAILED(rv)) { + if (!::JS_IsExceptionPending(cx)) { + nsDOMClassInfo::ThrowJSException(cx, rv); + } + return JS_FALSE; + } + + return JS_TRUE; +} + +static JSBool +LocationSetterUnwrapper(JSContext *cx, JSObject *obj, jsid id, JSBool strict, + jsval *vp) +{ + JSObject *wrapped = XPCWrapper::UnsafeUnwrapSecurityWrapper(obj); + if (wrapped) { + obj = wrapped; + } + + return LocationSetter(cx, obj, id, strict, vp); +} + NS_IMETHODIMP nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsid id, PRUint32 flags, @@ -6544,7 +6573,8 @@ nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, NS_ENSURE_SUCCESS(rv, rv); JSBool ok = JS_WrapValue(cx, &v) && - JS_DefinePropertyById(cx, obj, id, v, nsnull, nsnull, + JS_DefinePropertyById(cx, obj, id, v, nsnull, + LocationSetterUnwrapper, JSPROP_PERMANENT | JSPROP_ENUMERATE); if (!ok) { @@ -8177,7 +8207,8 @@ nsDocumentSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSAutoRequest ar(cx); - JSBool ok = ::JS_DefinePropertyById(cx, obj, id, v, nsnull, nsnull, + JSBool ok = ::JS_DefinePropertyById(cx, obj, id, v, nsnull, + LocationSetter, JSPROP_PERMANENT | JSPROP_ENUMERATE); if (!ok) { @@ -8222,34 +8253,6 @@ NS_IMETHODIMP nsDocumentSH::SetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsid id, jsval *vp, PRBool *_retval) { - if (id == sLocation_id) { - nsCOMPtr doc = do_QueryWrappedNative(wrapper); - NS_ENSURE_TRUE(doc, NS_ERROR_UNEXPECTED); - - nsCOMPtr location; - nsresult rv = doc->GetLocation(getter_AddRefs(location)); - NS_ENSURE_SUCCESS(rv, rv); - - if (location) { - JSAutoRequest ar(cx); - - JSString *val = ::JS_ValueToString(cx, *vp); - NS_ENSURE_TRUE(val, NS_ERROR_UNEXPECTED); - - nsDependentJSString depStr; - NS_ENSURE_TRUE(depStr.init(cx, val), NS_ERROR_UNEXPECTED); - - rv = location->SetHref(depStr); - NS_ENSURE_SUCCESS(rv, rv); - - nsCOMPtr holder; - rv = WrapNative(cx, JS_GetGlobalForScopeChain(cx), location, - &NS_GET_IID(nsIDOMLocation), PR_TRUE, vp, - getter_AddRefs(holder)); - return NS_FAILED(rv) ? rv : NS_SUCCESS_I_DID_SOMETHING; - } - } - if (id == sDocumentURIObject_id && IsPrivilegedScript()) { // We don't want privileged script that can read this property to set it, // but _do_ want to allow everyone else to set a value they can then read. diff --git a/dom/base/nsDOMClassInfo.h b/dom/base/nsDOMClassInfo.h index 7f0e94bba1a8..5efb38084cb4 100644 --- a/dom/base/nsDOMClassInfo.h +++ b/dom/base/nsDOMClassInfo.h @@ -407,8 +407,6 @@ public: #endif NS_IMETHOD GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsid id, jsval *vp, PRBool *_retval); - NS_IMETHOD SetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, - JSObject *obj, jsid id, jsval *vp, PRBool *_retval); NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, PRBool *_retval); NS_IMETHOD NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, diff --git a/dom/tests/mochitest/dom-level0/Makefile.in b/dom/tests/mochitest/dom-level0/Makefile.in index 55ace1c5d62f..a08896bb4a8b 100644 --- a/dom/tests/mochitest/dom-level0/Makefile.in +++ b/dom/tests/mochitest/dom-level0/Makefile.in @@ -55,6 +55,7 @@ _TEST_FILES = \ test_location.html \ test_innerWidthHeight_script.html \ innerWidthHeight_script.html \ + test_location_setters.html \ $(NULL) libs:: $(_TEST_FILES) diff --git a/dom/tests/mochitest/dom-level0/test_location_setters.html b/dom/tests/mochitest/dom-level0/test_location_setters.html new file mode 100644 index 000000000000..eb159c7ff2d9 --- /dev/null +++ b/dom/tests/mochitest/dom-level0/test_location_setters.html @@ -0,0 +1,78 @@ + + + + + Test for Bug 639720 + + + + +Mozilla Bug 639720 +

+ +

+ +
+
+
+ + diff --git a/editor/composer/src/nsEditorSpellCheck.cpp b/editor/composer/src/nsEditorSpellCheck.cpp index ad4bc1675ec0..ff641d3ce438 100644 --- a/editor/composer/src/nsEditorSpellCheck.cpp +++ b/editor/composer/src/nsEditorSpellCheck.cpp @@ -729,8 +729,9 @@ nsEditorSpellCheck::UpdateCurrentDictionary() } // otherwise, get language from preferences + nsAutoString preferedDict(Preferences::GetLocalizedString("spellchecker.dictionary")); if (dictName.IsEmpty()) { - dictName.Assign(Preferences::GetLocalizedString("spellchecker.dictionary")); + dictName.Assign(preferedDict); } if (dictName.IsEmpty()) @@ -755,27 +756,50 @@ nsEditorSpellCheck::UpdateCurrentDictionary() rv = SetCurrentDictionary(dictName); if (NS_FAILED(rv)) { // required dictionary was not available. Try to get a dictionary - // matching at least language part of dictName: If required dictionary is - // "aa-bb", we try "aa", then we try any available dictionary aa-XX + // matching at least language part of dictName: + nsAutoString langCode; PRInt32 dashIdx = dictName.FindChar('-'); if (dashIdx != -1) { langCode.Assign(Substring(dictName, 0, dashIdx)); - // try to use langCode - rv = SetCurrentDictionary(langCode); } else { langCode.Assign(dictName); } + + nsDefaultStringComparator comparator; + + // try dictionary.spellchecker preference if it starts with langCode (and + // if we haven't tried it already) + if (!preferedDict.IsEmpty() && !dictName.Equals(preferedDict) && + nsStyleUtil::DashMatchCompare(preferedDict, langCode, comparator)) { + rv = SetCurrentDictionary(preferedDict); + } + + // Otherwise, try langCode (if we haven't tried it already) + if (NS_FAILED(rv)) { + if (!dictName.Equals(langCode) && !preferedDict.Equals(langCode)) { + rv = SetCurrentDictionary(preferedDict); + } + } + + // Otherwise, try any available dictionary aa-XX if (NS_FAILED(rv)) { // loop over avaible dictionaries; if we find one with required // language, use it nsTArray dictList; rv = mSpellChecker->GetDictionaryList(&dictList); NS_ENSURE_SUCCESS(rv, rv); - nsDefaultStringComparator comparator; PRInt32 i, count = dictList.Length(); for (i = 0; i < count; i++) { nsAutoString dictStr(dictList.ElementAt(i)); + + if (dictStr.Equals(dictName) || + dictStr.Equals(preferedDict) || + dictStr.Equals(langCode)) { + // We have already tried it + continue; + } + if (nsStyleUtil::DashMatchCompare(dictStr, langCode, comparator) && NS_SUCCEEDED(SetCurrentDictionary(dictStr))) { break; diff --git a/gfx/cairo/README b/gfx/cairo/README index 3605a8da1742..4c694156b07d 100644 --- a/gfx/cairo/README +++ b/gfx/cairo/README @@ -172,8 +172,6 @@ fixup-unbounded.patch: Hack to work around bad assumption. quartz-get-image-performance: Make cairo_quartz_get_image faster in the failure case by not flushing unless we are going to succeed. -lround-c99-only.patch: Only use lround in C99 programs. - ==== pixman patches ==== pixman-android-cpu-detect.patch: Add CPU detection support for Android, where we can't reliably access /proc/self/auxv. diff --git a/gfx/cairo/cairo/src/cairo-misc.c b/gfx/cairo/cairo/src/cairo-misc.c index e0ed70cb6172..603725955813 100644 --- a/gfx/cairo/cairo/src/cairo-misc.c +++ b/gfx/cairo/cairo/src/cairo-misc.c @@ -483,7 +483,7 @@ _cairo_operator_bounded_by_either (cairo_operator_t op) } -#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L +#if DISABLE_SOME_FLOATING_POINT /* This function is identical to the C99 function lround(), except that it * performs arithmetic rounding (floor(d + .5) instead of away-from-zero rounding) and * has a valid input range of (INT_MIN, INT_MAX] instead of diff --git a/gfx/cairo/cairo/src/cairoint.h b/gfx/cairo/cairo/src/cairoint.h index 828fde8f1b72..e44442a908a2 100644 --- a/gfx/cairo/cairo/src/cairoint.h +++ b/gfx/cairo/cairo/src/cairoint.h @@ -974,7 +974,7 @@ _cairo_round (double r) return floor (r + .5); } -#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L +#if DISABLE_SOME_FLOATING_POINT cairo_private int _cairo_lround (double d) cairo_const; #else diff --git a/gfx/cairo/lround-c99-only.patch b/gfx/cairo/lround-c99-only.patch deleted file mode 100644 index 9002235f0e2c..000000000000 --- a/gfx/cairo/lround-c99-only.patch +++ /dev/null @@ -1,46 +0,0 @@ -Only use lround in C99 programs. - -diff --git a/gfx/cairo/cairo/src/cairo-misc.c b/gfx/cairo/cairo/src/cairo-misc.c ---- a/gfx/cairo/cairo/src/cairo-misc.c -+++ b/gfx/cairo/cairo/src/cairo-misc.c -@@ -478,17 +478,17 @@ _cairo_operator_bounded_by_either (cairo - case CAIRO_OPERATOR_IN: - case CAIRO_OPERATOR_DEST_IN: - case CAIRO_OPERATOR_DEST_ATOP: - return 0; - } - - } - --#if DISABLE_SOME_FLOATING_POINT -+#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L - /* This function is identical to the C99 function lround(), except that it - * performs arithmetic rounding (floor(d + .5) instead of away-from-zero rounding) and - * has a valid input range of (INT_MIN, INT_MAX] instead of - * [INT_MIN, INT_MAX]. It is much faster on both x86 and FPU-less systems - * than other commonly used methods for rounding (lround, round, rint, lrint - * or float (d + 0.5)). - * - * The reason why this function is much faster on x86 than other -diff --git a/gfx/cairo/cairo/src/cairoint.h b/gfx/cairo/cairo/src/cairoint.h ---- a/gfx/cairo/cairo/src/cairoint.h -+++ b/gfx/cairo/cairo/src/cairoint.h -@@ -969,17 +969,17 @@ _cairo_restrict_value (double value, dou - * away from 0. _cairo_round rounds halfway cases toward negative infinity. - * This matches the rounding behaviour of _cairo_lround. */ - static inline double cairo_const - _cairo_round (double r) - { - return floor (r + .5); - } - --#if DISABLE_SOME_FLOATING_POINT -+#if DISABLE_SOME_FLOATING_POINT || __STDC_VERSION__ < 199901L - cairo_private int - _cairo_lround (double d) cairo_const; - #else - #define _cairo_lround lround - #endif - - cairo_private uint16_t - _cairo_half_from_float (float f) cairo_const; diff --git a/js/src/aclocal.m4 b/js/src/aclocal.m4 index 6b0a411d8ca5..144a8641298a 100644 --- a/js/src/aclocal.m4 +++ b/js/src/aclocal.m4 @@ -11,5 +11,6 @@ builtin(include, build/autoconf/mozprog.m4)dnl builtin(include, build/autoconf/acwinpaths.m4)dnl builtin(include, build/autoconf/lto.m4)dnl builtin(include, build/autoconf/gcc-pr49911.m4)dnl +builtin(include, build/autoconf/frameptr.m4)dnl MOZ_PROG_CHECKMSYS() diff --git a/js/src/build/autoconf/frameptr.m4 b/js/src/build/autoconf/frameptr.m4 new file mode 100644 index 000000000000..77a6d71aedc8 --- /dev/null +++ b/js/src/build/autoconf/frameptr.m4 @@ -0,0 +1,25 @@ +dnl Set MOZ_FRAMEPTR_FLAGS to the flags that should be used for enabling or +dnl disabling frame pointers in this architecture based on the configure +dnl options + +AC_DEFUN([MOZ_SET_FRAMEPTR_FLAGS], [ + if test "$GNU_CC"; then + MOZ_ENABLE_FRAME_PTR="-fno-omit-frame-pointer" + MOZ_DISABLE_FRAME_PTR="-fomit-frame-pointer" + else + case "$target" in + *-mingw*) + MOZ_ENABLE_FRAME_PTR="-Oy-" + MOZ_DISABLE_FRAME_PTR="-Oy" + ;; + esac + fi + + # if we are debugging or profiling, we want a frame pointer. + if test -z "$MOZ_OPTIMIZE" -o \ + -n "$MOZ_PROFILING" -o -n "$MOZ_DEBUG"; then + MOZ_FRAMEPTR_FLAGS="$MOZ_ENABLE_FRAME_PTR" + else + MOZ_FRAMEPTR_FLAGS="$MOZ_DISABLE_FRAME_PTR" + fi +]) diff --git a/js/src/config/autoconf.mk.in b/js/src/config/autoconf.mk.in index a719c93c3e1f..b1094b41b9e9 100644 --- a/js/src/config/autoconf.mk.in +++ b/js/src/config/autoconf.mk.in @@ -143,6 +143,7 @@ WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@ FAIL_ON_WARNINGS = @FAIL_ON_WARNINGS@ MOZ_OPTIMIZE = @MOZ_OPTIMIZE@ +MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@ MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@ MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@ MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@ diff --git a/js/src/config/config.mk b/js/src/config/config.mk index 54c03ed8e989..bfb2c1596945 100644 --- a/js/src/config/config.mk +++ b/js/src/config/config.mk @@ -463,6 +463,9 @@ endif # MOZ_OPTIMIZE == 1 endif # MOZ_OPTIMIZE endif # CROSS_COMPILE +CFLAGS += $(MOZ_FRAMEPTR_FLAGS) +CXXFLAGS += $(MOZ_FRAMEPTR_FLAGS) + # Check for FAIL_ON_WARNINGS & FAIL_ON_WARNINGS_DEBUG (Shorthand for Makefiles # to request that we use the 'warnings as errors' compile flags) diff --git a/js/src/configure.in b/js/src/configure.in index cd6d63436c7b..f8ce401ebff5 100644 --- a/js/src/configure.in +++ b/js/src/configure.in @@ -1972,13 +1972,7 @@ case "$target" in *-darwin*) MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS -fno-stack-protector" + MOZ_OPTIMIZE_FLAGS="-O3 -fno-stack-protector" _PEDANTIC= CFLAGS="$CFLAGS -fpascal-strings -fno-common" CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common" @@ -2083,13 +2077,7 @@ ia64*-hpux*) TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' MOZ_GFX_OPTIMIZE_MOBILE=1 - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks -fno-reorder-functions $MOZ_FRAMEPTR_FLAGS" + MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks -fno-reorder-functions" # The Maemo builders don't know about this flag MOZ_ARM_VFP_FLAGS="-mfpu=vfp" ;; @@ -2109,14 +2097,8 @@ ia64*-hpux*) # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results. MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50" esac - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS" - MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS" + MOZ_PGO_OPTIMIZE_FLAGS="-O3" + MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK" MOZ_DEBUG_FLAGS="-g" fi @@ -2236,13 +2218,7 @@ ia64*-hpux*) MOZ_DEBUG_FLAGS='-Zi' MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' WARNINGS_AS_ERRORS='-WX' - # If we're building with --enable-profiling, we need -Oy-, which forces a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS= - else - MOZ_FRAMEPTR_FLAGS='-Oy-' - fi - MOZ_OPTIMIZE_FLAGS="-O2 $MOZ_FRAMEPTR_FLAGS" + MOZ_OPTIMIZE_FLAGS="-O2" MOZ_JS_LIBS='$(libdir)/mozjs.lib' MOZ_FIX_LINK_PATHS= DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' @@ -4393,6 +4369,8 @@ else MOZ_OPTIMIZE= fi ], MOZ_OPTIMIZE=1) +MOZ_SET_FRAMEPTR_FLAGS + if test "$COMPILE_ENVIRONMENT"; then if test -n "$MOZ_OPTIMIZE"; then AC_MSG_CHECKING([for valid optimization flags]) @@ -4411,6 +4389,7 @@ fi fi # COMPILE_ENVIRONMENT AC_SUBST(MOZ_OPTIMIZE) +AC_SUBST(MOZ_FRAMEPTR_FLAGS) AC_SUBST(MOZ_OPTIMIZE_FLAGS) AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK) diff --git a/js/src/jstracer.cpp b/js/src/jstracer.cpp index 6ffe74f56640..99c9c4d2e6c9 100644 --- a/js/src/jstracer.cpp +++ b/js/src/jstracer.cpp @@ -17171,6 +17171,7 @@ LoopProfile::profileOperation(JSContext* cx, JSOp op) stackPush(StackValue(v1.isConst && v2.isConst)); } else if (op == JSOP_AND) { bool b = !!js_ValueToBoolean(cx->regs().sp[-1]); + StackValue v = stackAt(-1); if (b) stackPop(); } else { diff --git a/layout/reftests/svg/smil/anim-discrete-values-2.svg b/layout/reftests/svg/smil/anim-discrete-values-2.svg deleted file mode 100644 index c05693e143e9..000000000000 --- a/layout/reftests/svg/smil/anim-discrete-values-2.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - Test discrete keyTimes are scaled correctly (Bug 681645) - - - - diff --git a/layout/reftests/svg/smil/anim-discrete-values-3.svg b/layout/reftests/svg/smil/anim-discrete-values-3.svg deleted file mode 100644 index c6b850bfd651..000000000000 --- a/layout/reftests/svg/smil/anim-discrete-values-3.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - Test discrete keyTimes are scaled correctly (Bug 681645) - - - - diff --git a/layout/reftests/svg/smil/reftest.list b/layout/reftests/svg/smil/reftest.list index ec5331521a25..ccba051c23a9 100644 --- a/layout/reftests/svg/smil/reftest.list +++ b/layout/reftests/svg/smil/reftest.list @@ -55,8 +55,6 @@ include event/reftest.list # General tests == anim-discrete-values-1.svg anim-standard-ref.svg -== anim-discrete-values-2.svg anim-standard-ref.svg -== anim-discrete-values-3.svg anim-standard-ref.svg == anim-discrete-replace-sum-1.svg anim-standard-ref.svg == anim-discrete-sum-none-1.svg anim-standard-ref.svg == anim-discrete-sum-sum-1.svg anim-standard-ref.svg diff --git a/modules/libjar/zipwriter/src/nsDeflateConverter.cpp b/modules/libjar/zipwriter/src/nsDeflateConverter.cpp index 841c22d1f7bf..9975a8bccfa8 100644 --- a/modules/libjar/zipwriter/src/nsDeflateConverter.cpp +++ b/modules/libjar/zipwriter/src/nsDeflateConverter.cpp @@ -76,8 +76,6 @@ nsresult nsDeflateConverter::Init() case WRAP_GZIP: window += 16; break; - default: - break; } zerr = deflateInit2(&mZstream, mLevel, Z_DEFLATED, window, 8, diff --git a/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in index cee6f8608edd..b1471a17de54 100644 --- a/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in +++ b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in @@ -52,7 +52,7 @@ ifdef MOZ_THUMB2 #{ # work around it by telling gcc that the THUMB frame pointer is a # vanilla callee-save register. OS_CXXFLAGS += -fomit-frame-pointer -MOZ_OPTIMIZE_FLAGS := $(filter-out -fno-omit-frame-pointer,$(MOZ_OPTIMIZE_FLAGS)) +MOZ_FRAMEPTR_FLAGS := -fomit-frame-pointer endif #} MODULE = handler diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk index bcbbf6e14939..93a54c6c7ba0 100644 --- a/toolkit/mozapps/installer/packager.mk +++ b/toolkit/mozapps/installer/packager.mk @@ -397,8 +397,18 @@ endif ifdef MOZ_OMNIJAR +# Set MOZ_CAN_RUN_PROGRAMS for trivial cases. +ifndef MOZ_CAN_RUN_PROGRAMS +ifdef UNIVERSAL_BINARY +MOZ_CAN_RUN_PROGRAMS=1 +endif +ifndef CROSS_COMPILE +MOZ_CAN_RUN_PROGRAMS=1 +endif +endif # MOZ_CAN_RUN_PROGRAMS + ifdef GENERATE_CACHE -ifneq (1_,$(if $(CROSS_COMPILE),1,0)_$(UNIVERSAL_BINARY)) +ifdef MOZ_CAN_RUN_PROGRAMS ifdef RUN_TEST_PROGRAM _ABS_RUN_TEST_PROGRAM = $(call core_abspath,$(RUN_TEST_PROGRAM)) endif @@ -477,7 +487,7 @@ endif # dummy macro if we don't have PSM built SIGN_NSS = -ifneq (1_,$(if $(CROSS_COMPILE),1,0)_$(UNIVERSAL_BINARY)) +ifdef MOZ_CAN_RUN_PROGRAMS ifdef MOZ_PSM SIGN_NSS = @echo signing nss libraries; diff --git a/widget/src/android/AndroidJNI.cpp b/widget/src/android/AndroidJNI.cpp index 6aadc8e85e9a..ec7c8cb33538 100644 --- a/widget/src/android/AndroidJNI.cpp +++ b/widget/src/android/AndroidJNI.cpp @@ -171,11 +171,12 @@ Java_org_mozilla_gecko_GeckoAppShell_onChangeNetworkLinkStatus(JNIEnv *jenv, jcl } NS_EXPORT void JNICALL -Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash(JNIEnv *jenv, jclass, jstring stack) +Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash(JNIEnv *, jclass, jstring stack) { #ifdef MOZ_CRASHREPORTER - nsJNIString javaStack(stack, jenv); - CrashReporter::AppendAppNotesToCrashReport(NS_ConvertUTF16toUTF8(javaStack)); + nsJNIString javaStack(stack); + CrashReporter::AppendAppNotesToCrashReport( + NS_ConvertUTF16toUTF8(javaStack)); #endif abort(); } diff --git a/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/xpcom/reflect/xptcall/src/md/unix/Makefile.in index c6d3a9bb00bf..deba1759dcbb 100644 --- a/xpcom/reflect/xptcall/src/md/unix/Makefile.in +++ b/xpcom/reflect/xptcall/src/md/unix/Makefile.in @@ -69,10 +69,14 @@ ifeq (Darwin,$(OS_ARCH)) ifeq (86,$(findstring 86,$(OS_TEST))) ifneq (x86_64,$(OS_TEST)) # If we compile xptcinvoke_unixish_x86.cpp with -fomit-frame-pointer -# we end up crashing on startup, presumably because of the %esp munging we do -# when KEEP_STACK_16_BYTE_ALIGNED. So let's not use that flag here. -# NOTE: MODULE_OPTIMIZE_FLAGS must be set before including config.mk -MODULE_OPTIMIZE_FLAGS=-O3 +# we end up crashing on startup. This is because +# "movl %5, %%eax\n\t" /* function index */ +# becomes +# mov 0x1c(%esp),%eax +# but we have modified esp. +# NOTE: MOZ_FRAMEPTR_FLAGS must be set before including config.mk +# FIXME: change the file instead of using this hack. +MOZ_FRAMEPTR_FLAGS=-fno-omit-frame-pointer endif endif endif