components/desktop/thunderbird/patches/firefox31-317-sparc-xptcall.patch
changeset 5527 611b2d6efdfe
parent 5526 570ac9aab8b2
child 5528 f2f5af510081
equal deleted inserted replaced
5526:570ac9aab8b2 5527:611b2d6efdfe
     1 See Mozilla bug #1153707 - [JavaScript Error: "invalid 'in' operand 
       
     2 aLivemarkInfo"] when calling method: [mozIAsyncLivemarks::getLivemark].
       
     3 This is already upstream in version 38.
       
     4 
       
     5 --- comm-esr31/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc_solaris.cpp.orig	2015-06-04 17:42:52.730766562 -0700
       
     6 +++ comm-esr31/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc_solaris.cpp	2015-06-04 17:42:52.738654394 -0700
       
     7 @@ -52,13 +52,17 @@
       
     8  
       
     9          if(param.IsOut() || !type.IsArithmetic())
       
    10          {
       
    11 -            dp->val.p = (void*) *ap;
       
    12 +            if (type == nsXPTType::T_JSVAL)
       
    13 +                dp->val.p = *((void**)*ap);
       
    14 +            else
       
    15 +                dp->val.p = (void*) *ap;
       
    16 +
       
    17              continue;
       
    18          }
       
    19          // else
       
    20          switch(type)
       
    21          {
       
    22 -        case nsXPTType::T_I8     : dp->val.i8  = *((int32_t*)  ap);       break;
       
    23 +        case nsXPTType::T_I8     : dp->val.i8  = *((int32_t*) ap);       break;
       
    24          case nsXPTType::T_I16    : dp->val.i16 = *((int32_t*) ap);       break;
       
    25          case nsXPTType::T_I32    : dp->val.i32 = *((int32_t*) ap);       break;
       
    26          case nsXPTType::T_DOUBLE :
       
    27 --- comm-esr31/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp.orig	2015-06-04 17:42:52.736217989 -0700
       
    28 +++ comm-esr31/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp	2015-06-04 17:42:52.739152339 -0700
       
    29 @@ -1357,21 +1357,9 @@
       
    30                  break;
       
    31          }
       
    32  
       
    33 -// see bug #961488
       
    34 -#if (defined(XP_UNIX) && !defined(XP_MACOSX) && !defined(_AIX)) && \
       
    35 -    ((defined(__sparc) && !defined(__sparcv9) && !defined(__sparcv9__)) || \
       
    36 -    (defined(__powerpc__) && !defined (__powerpc64__)))
       
    37 -        if (type_tag == nsXPTType::T_JSVAL) {
       
    38 -            if (!XPCConvert::JSData2Native(*(void**)(&pv->val), val, type,
       
    39 -                                           !param.IsDipper(), &param_iid, nullptr))
       
    40 -                break;
       
    41 -        } else
       
    42 -#endif
       
    43 -        {
       
    44 -            if (!XPCConvert::JSData2Native(&pv->val, val, type,
       
    45 -                                           !param.IsDipper(), &param_iid, nullptr))
       
    46 -                break;
       
    47 -        }
       
    48 +        if (!XPCConvert::JSData2Native(&pv->val, val, type,
       
    49 +                                       !param.IsDipper(), &param_iid, nullptr))
       
    50 +            break;
       
    51      }
       
    52  
       
    53      // if any params were dependent, then we must iterate again to convert them.