2019-09-12 23:14:35 +02:00
|
|
|
# HG changeset patch
|
2020-12-16 23:40:17 +01:00
|
|
|
# Parent f9f5af4c88f2f3172a4f30d7e42bd2131bf24146
|
2019-09-12 23:14:35 +02:00
|
|
|
This fixes a broken build for gcc < 9 on ppc64le.
|
|
|
|
This patch can be removed for newer gcc-versions.
|
|
|
|
|
2020-03-12 20:14:24 +01:00
|
|
|
diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
|
|
|
|
--- a/js/xpconnect/src/XPCWrappedNative.cpp
|
|
|
|
+++ b/js/xpconnect/src/XPCWrappedNative.cpp
|
2020-12-16 23:40:17 +01:00
|
|
|
@@ -1072,17 +1072,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
2020-03-12 20:14:24 +01:00
|
|
|
uint32_t* result);
|
|
|
|
|
|
|
|
MOZ_ALWAYS_INLINE bool GetInterfaceTypeFromParam(const nsXPTType& type,
|
|
|
|
nsID* result) const;
|
|
|
|
|
2019-09-12 23:14:35 +02:00
|
|
|
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
|
|
|
|
MutableHandleValue srcp) const;
|
|
|
|
|
|
|
|
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
|
|
|
|
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
|
|
|
+// Work around a compiler bug on ppc64le (bug 1512162).
|
|
|
|
+ MOZ_ALWAYS_INLINE
|
|
|
|
+#endif
|
|
|
|
+ bool GatherAndConvertResults();
|
|
|
|
|
|
|
|
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
|
|
|
|
2020-03-12 20:14:24 +01:00
|
|
|
nsXPTCVariant* GetDispatchParam(uint8_t paramIndex) {
|
|
|
|
if (paramIndex >= mJSContextIndex) {
|
|
|
|
paramIndex += 1;
|
|
|
|
}
|
|
|
|
if (paramIndex >= mOptArgcIndex) {
|
2020-12-16 23:40:17 +01:00
|
|
|
@@ -1119,17 +1123,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
2020-03-12 20:14:24 +01:00
|
|
|
|
|
|
|
{
|
|
|
|
// Success checked later.
|
|
|
|
mIFaceInfo->GetMethodInfo(mVTableIndex, &mMethodInfo);
|
|
|
|
}
|
2019-09-12 23:14:35 +02:00
|
|
|
|
|
|
|
~CallMethodHelper();
|
|
|
|
|
|
|
|
- MOZ_ALWAYS_INLINE bool Call();
|
|
|
|
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
|
|
|
+// Work around a compiler bug on ppc64le (bug 1512162).
|
|
|
|
+ MOZ_ALWAYS_INLINE
|
|
|
|
+#endif
|
|
|
|
+ bool Call();
|
|
|
|
|
|
|
|
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
|
|
|
void trace(JSTracer* aTrc);
|
2020-03-12 20:14:24 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
// static
|
|
|
|
bool XPCWrappedNative::CallMethod(XPCCallContext& ccx,
|
|
|
|
CallMode mode /*= CALL_METHOD */) {
|