Bug 349662 - Bug with 8, 16 and 32-bit unsigned integer parameters on Mac/PPC. Patch by vkorenev, r=jhpedemonte, a=mconnor. XULRunner only.
git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@213076 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -354,7 +354,11 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
{
|
||||
LOG(("short\n"));
|
||||
if (!aIsOut && !aIsArrayElement) { // 'in'
|
||||
aVariant.val.i16 = env->CallShortMethod(aParam, shortValueMID);
|
||||
jshort value = env->CallShortMethod(aParam, shortValueMID);
|
||||
if (aType == nsXPTType::T_I16)
|
||||
aVariant.val.i16 = value;
|
||||
else
|
||||
aVariant.val.u8 = value;
|
||||
} else { // 'inout' & 'array'
|
||||
jshort value;
|
||||
if (aParam) {
|
||||
@@ -363,7 +367,10 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
|
||||
if (aIsOut) { // 'inout'
|
||||
if (aParam) {
|
||||
aVariant.val.i16 = value;
|
||||
if (aType == nsXPTType::T_I16)
|
||||
aVariant.val.i16 = value;
|
||||
else
|
||||
aVariant.val.u8 = value;
|
||||
aVariant.ptr = &aVariant.val;
|
||||
} else {
|
||||
aVariant.ptr = nsnull;
|
||||
@@ -384,7 +391,11 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
{
|
||||
LOG(("int\n"));
|
||||
if (!aIsOut && !aIsArrayElement) { // 'in'
|
||||
aVariant.val.i32 = env->CallIntMethod(aParam, intValueMID);
|
||||
jint value = env->CallIntMethod(aParam, intValueMID);
|
||||
if (aType == nsXPTType::T_I32)
|
||||
aVariant.val.i32 = value;
|
||||
else
|
||||
aVariant.val.u16 = value;
|
||||
} else { // 'inout' & 'array'
|
||||
jint value;
|
||||
if (aParam) {
|
||||
@@ -393,7 +404,10 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
|
||||
if (aIsOut) { // 'inout'
|
||||
if (aParam) {
|
||||
aVariant.val.i32 = value;
|
||||
if (aType == nsXPTType::T_I32)
|
||||
aVariant.val.i32 = value;
|
||||
else
|
||||
aVariant.val.u16 = value;
|
||||
aVariant.ptr = &aVariant.val;
|
||||
} else {
|
||||
aVariant.ptr = nsnull;
|
||||
@@ -414,7 +428,11 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
{
|
||||
LOG(("long\n"));
|
||||
if (!aIsOut && !aIsArrayElement) { // 'in'
|
||||
aVariant.val.i64 = env->CallLongMethod(aParam, longValueMID);
|
||||
jlong value = env->CallLongMethod(aParam, longValueMID);
|
||||
if (aType == nsXPTType::T_I64)
|
||||
aVariant.val.i64 = value;
|
||||
else
|
||||
aVariant.val.u32 = value;
|
||||
} else { // 'inout' & 'array'
|
||||
jlong value;
|
||||
if (aParam) {
|
||||
@@ -423,7 +441,10 @@ SetupParams(JNIEnv *env, const jobject aParam, PRUint8 aType, PRBool aIsOut,
|
||||
|
||||
if (aIsOut) { // 'inout'
|
||||
if (aParam) {
|
||||
aVariant.val.i64 = value;
|
||||
if (aType == nsXPTType::T_I64)
|
||||
aVariant.val.i64 = value;
|
||||
else
|
||||
aVariant.val.u32 = value;
|
||||
aVariant.ptr = &aVariant.val;
|
||||
} else {
|
||||
aVariant.ptr = nsnull;
|
||||
|
||||
Reference in New Issue
Block a user