44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp
|
|
--- firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
|
|
+++ firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
|
|
@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
|
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
|
|
MutableHandleValue srcp) const;
|
|
|
|
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
|
|
+ bool GatherAndConvertResults();
|
|
|
|
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
|
|
|
@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
|
|
|
~CallMethodHelper();
|
|
|
|
- MOZ_ALWAYS_INLINE bool Call();
|
|
+ bool Call();
|
|
|
|
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
|
void trace(JSTracer* aTrc);
|
|
@@ -1157,6 +1157,10 @@ bool XPCWrappedNative::CallMethod(XPCCal
|
|
return helper.get().Call();
|
|
}
|
|
|
|
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
|
+// Work around a compiler bug on ppc64le (bug 1512162).
|
|
+__attribute__ ((noinline,noclone))
|
|
+#endif
|
|
bool CallMethodHelper::Call() {
|
|
mCallContext.SetRetVal(JS::UndefinedValue());
|
|
|
|
@@ -1315,6 +1319,10 @@ bool CallMethodHelper::GetOutParamSource
|
|
return true;
|
|
}
|
|
|
|
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
|
+// Work around a compiler bug on ppc64le (bug 1512162).
|
|
+__attribute__ ((noinline,noclone))
|
|
+#endif
|
|
bool CallMethodHelper::GatherAndConvertResults() {
|
|
// now we iterate through the native params to gather and convert results
|
|
uint8_t paramCount = mMethodInfo->GetParamCount();
|