Bug 368482 - Alpha Linux updates from xptcall changes, patch by falk@debian.org, r=me
git-svn-id: svn://10.0.0.236/trunk@219204 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
7d48806583
commit
dfd4da8a97
@ -93,21 +93,21 @@ invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPTC_PUBLIC_API(nsresult)
|
* EXPORT_XPCOM_API(nsresult)
|
||||||
* XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
|
* NS_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
|
||||||
* PRUint32 paramCount, nsXPTCVariant* params)
|
* PRUint32 paramCount, nsXPTCVariant* params)
|
||||||
*/
|
*/
|
||||||
__asm__(
|
__asm__(
|
||||||
"#### XPTC_InvokeByIndex ####\n"
|
"#### NS_InvokeByIndex ####\n"
|
||||||
".text\n\t"
|
".text\n\t"
|
||||||
".align 5\n\t"
|
".align 5\n\t"
|
||||||
".globl XPTC_InvokeByIndex\n\t"
|
".globl NS_InvokeByIndex\n\t"
|
||||||
".ent XPTC_InvokeByIndex\n"
|
".ent NS_InvokeByIndex\n"
|
||||||
"XPTC_InvokeByIndex:\n\t"
|
"NS_InvokeByIndex:\n\t"
|
||||||
".frame $15,32,$26,0\n\t"
|
".frame $15,32,$26,0\n\t"
|
||||||
".mask 0x4008000,-32\n\t"
|
".mask 0x4008000,-32\n\t"
|
||||||
"ldgp $29,0($27)\n"
|
"ldgp $29,0($27)\n"
|
||||||
"$XPTC_InvokeByIndex..ng:\n\t"
|
"$NS_InvokeByIndex..ng:\n\t"
|
||||||
"subq $30,32,$30\n\t"
|
"subq $30,32,$30\n\t"
|
||||||
"stq $26,0($30)\n\t"
|
"stq $26,0($30)\n\t"
|
||||||
"stq $15,8($30)\n\t"
|
"stq $15,8($30)\n\t"
|
||||||
@ -177,5 +177,5 @@ __asm__(
|
|||||||
"ldq $15,8($30)\n\t"
|
"ldq $15,8($30)\n\t"
|
||||||
"addq $30,32,$30\n\t"
|
"addq $30,32,$30\n\t"
|
||||||
"ret $31,($26),1\n\t"
|
"ret $31,($26),1\n\t"
|
||||||
".end XPTC_InvokeByIndex"
|
".end NS_InvokeByIndex"
|
||||||
);
|
);
|
||||||
|
|||||||
@ -39,6 +39,7 @@
|
|||||||
/* Implement shared vtbl methods. */
|
/* Implement shared vtbl methods. */
|
||||||
|
|
||||||
#include "xptcprivate.h"
|
#include "xptcprivate.h"
|
||||||
|
#include "xptiprivate.h"
|
||||||
|
|
||||||
/* Prototype specifies unmangled function name and disables unused warning */
|
/* Prototype specifies unmangled function name and disables unused warning */
|
||||||
static nsresult
|
static nsresult
|
||||||
@ -53,7 +54,6 @@ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
|
|||||||
|
|
||||||
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
|
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
|
||||||
nsXPTCMiniVariant* dispatchParams = NULL;
|
nsXPTCMiniVariant* dispatchParams = NULL;
|
||||||
nsIInterfaceInfo* iface_info = NULL;
|
|
||||||
const nsXPTMethodInfo* info;
|
const nsXPTMethodInfo* info;
|
||||||
PRUint8 paramCount;
|
PRUint8 paramCount;
|
||||||
PRUint8 i;
|
PRUint8 i;
|
||||||
@ -61,11 +61,7 @@ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
|
|||||||
|
|
||||||
NS_ASSERTION(self,"no self");
|
NS_ASSERTION(self,"no self");
|
||||||
|
|
||||||
self->GetInterfaceInfo(&iface_info);
|
self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
|
||||||
NS_ASSERTION(iface_info,"no interface info");
|
|
||||||
|
|
||||||
iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
|
|
||||||
NS_ASSERTION(info,"no interface info");
|
|
||||||
|
|
||||||
paramCount = info->GetParamCount();
|
paramCount = info->GetParamCount();
|
||||||
|
|
||||||
@ -125,9 +121,7 @@ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
|
result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams);
|
||||||
|
|
||||||
NS_RELEASE(iface_info);
|
|
||||||
|
|
||||||
if(dispatchParams != paramBuffer)
|
if(dispatchParams != paramBuffer)
|
||||||
delete [] dispatchParams;
|
delete [] dispatchParams;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user