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;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
for (int i = 0; i < paramCount; i++)
|
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;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
@ -109,8 +109,19 @@ struct nsXPTCVariant : public nsXPTCMiniVariant
|
|||||||
PRBool IsValInterface() const {return (PRBool) (flags & VAL_IS_IFACE);}
|
PRBool IsValInterface() const {return (PRBool) (flags & VAL_IS_IFACE);}
|
||||||
PRBool IsValArray() const {return (PRBool) (flags & VAL_IS_ARRAY);}
|
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()) {
|
switch(t.TagPart()) {
|
||||||
case nsXPTType::T_I8: val.i8 = mv.val.i8; break;
|
case nsXPTType::T_I8: val.i8 = mv.val.i8; break;
|
||||||
case nsXPTType::T_I16: val.i16 = mv.val.i16; 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 */
|
case nsXPTType::T_PWSTRING_SIZE_IS: /* fall through */
|
||||||
default: val.p = mv.val.p; break;
|
default: val.p = mv.val.p; break;
|
||||||
}
|
}
|
||||||
ptr = nsnull;
|
}
|
||||||
type = t;
|
|
||||||
flags = 0;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user