mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Fixes 64 bit address conversion in proxy. Also fixes proxing char parameters. p=jband, r=dougt, a=brendan. 52200, 26560.
This commit is contained in:
parent
53256f676b
commit
aeee5aad67
@ -387,7 +387,11 @@ nsProxyObject::convertMiniVariantToVariant(nsXPTMethodInfo *methodInfo, nsXPTCMi
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
for (int i = 0; i < paramCount; i++)
|
||||
(*fullParam)[i].Init(params[i], methodInfo->GetParam(i).GetType());
|
||||
{
|
||||
const nsXPTParamInfo& paramInfo = methodInfo->GetParam(i);
|
||||
uint8 flags = paramInfo.IsOut() ? nsXPTCVariant::PTR_IS_DATA : 0;
|
||||
(*fullParam)[i].Init(params[i], paramInfo.GetType(), flags);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -109,8 +109,19 @@ struct nsXPTCVariant : public nsXPTCMiniVariant
|
||||
PRBool IsValInterface() const {return (PRBool) (flags & VAL_IS_IFACE);}
|
||||
PRBool IsValArray() const {return (PRBool) (flags & VAL_IS_ARRAY);}
|
||||
|
||||
void Init(const nsXPTCMiniVariant& mv, const nsXPTType& t)
|
||||
void Init(const nsXPTCMiniVariant& mv, const nsXPTType& t, PRUint8 f)
|
||||
{
|
||||
type = t;
|
||||
flags = f;
|
||||
|
||||
if(f & PTR_IS_DATA)
|
||||
{
|
||||
ptr = mv.val.p;
|
||||
val.p = nsnull;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr = nsnull;
|
||||
switch(t.TagPart()) {
|
||||
case nsXPTType::T_I8: val.i8 = mv.val.i8; break;
|
||||
case nsXPTType::T_I16: val.i16 = mv.val.i16; break;
|
||||
@ -137,9 +148,7 @@ struct nsXPTCVariant : public nsXPTCMiniVariant
|
||||
case nsXPTType::T_PWSTRING_SIZE_IS: /* fall through */
|
||||
default: val.p = mv.val.p; break;
|
||||
}
|
||||
ptr = nsnull;
|
||||
type = t;
|
||||
flags = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user