Changeset 177644 in webkit


Ignore:
Timestamp:
Dec 22, 2014 12:08:41 PM (9 years ago)
Author:
bshafiei@apple.com
Message:

Merged r173973. rdar://problem/19327404

Location:
branches/safari-600.1.4.13-branch/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-600.1.4.13-branch/Source/WebKit2/ChangeLog

    r177438 r177644  
     12014-12-22  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Merge r173973.
     4
     5    2014-09-25  Tim Horton  <timothy_horton@apple.com>
     6
     7            CommitLayerTree decode fails in 32-bit apps on 64-bit devices (TransformationMatrix alignment differs)
     8            https://bugs.webkit.org/show_bug.cgi?id=136444
     9            <rdar://problem/17952526>
     10
     11            Reviewed by Anders Carlsson.
     12
     13            * Shared/WebCoreArgumentCoders.cpp:
     14            (IPC::ArgumentCoder<TransformationMatrix>::encode):
     15            (IPC::ArgumentCoder<TransformationMatrix>::decode):
     16            Stop using SimpleArgumentCoder to encode/decode TransformationMatrix,
     17            because the alignment of TransformationMatrix differs between architectures,
     18            and there's no guarantee that both sides of a connection are the same architecture.
     19
    1202014-12-17  Babak Shafiei  <bshafiei@apple.com>
    221
  • branches/safari-600.1.4.13-branch/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp

    r171550 r177644  
    9999void ArgumentCoder<TransformationMatrix>::encode(ArgumentEncoder& encoder, const TransformationMatrix& transformationMatrix)
    100100{
    101     SimpleArgumentCoder<TransformationMatrix>::encode(encoder, transformationMatrix);
     101    encoder << transformationMatrix.m11();
     102    encoder << transformationMatrix.m12();
     103    encoder << transformationMatrix.m13();
     104    encoder << transformationMatrix.m14();
     105
     106    encoder << transformationMatrix.m21();
     107    encoder << transformationMatrix.m22();
     108    encoder << transformationMatrix.m23();
     109    encoder << transformationMatrix.m24();
     110
     111    encoder << transformationMatrix.m31();
     112    encoder << transformationMatrix.m32();
     113    encoder << transformationMatrix.m33();
     114    encoder << transformationMatrix.m34();
     115
     116    encoder << transformationMatrix.m41();
     117    encoder << transformationMatrix.m42();
     118    encoder << transformationMatrix.m43();
     119    encoder << transformationMatrix.m44();
    102120}
    103121
    104122bool ArgumentCoder<TransformationMatrix>::decode(ArgumentDecoder& decoder, TransformationMatrix& transformationMatrix)
    105123{
    106     return SimpleArgumentCoder<TransformationMatrix>::decode(decoder, transformationMatrix);
     124    double m11;
     125    if (!decoder.decode(m11))
     126        return false;
     127    double m12;
     128    if (!decoder.decode(m12))
     129        return false;
     130    double m13;
     131    if (!decoder.decode(m13))
     132        return false;
     133    double m14;
     134    if (!decoder.decode(m14))
     135        return false;
     136
     137    double m21;
     138    if (!decoder.decode(m21))
     139        return false;
     140    double m22;
     141    if (!decoder.decode(m22))
     142        return false;
     143    double m23;
     144    if (!decoder.decode(m23))
     145        return false;
     146    double m24;
     147    if (!decoder.decode(m24))
     148        return false;
     149
     150    double m31;
     151    if (!decoder.decode(m31))
     152        return false;
     153    double m32;
     154    if (!decoder.decode(m32))
     155        return false;
     156    double m33;
     157    if (!decoder.decode(m33))
     158        return false;
     159    double m34;
     160    if (!decoder.decode(m34))
     161        return false;
     162
     163    double m41;
     164    if (!decoder.decode(m41))
     165        return false;
     166    double m42;
     167    if (!decoder.decode(m42))
     168        return false;
     169    double m43;
     170    if (!decoder.decode(m43))
     171        return false;
     172    double m44;
     173    if (!decoder.decode(m44))
     174        return false;
     175
     176    transformationMatrix.setMatrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
     177    return true;
    107178}
    108179
Note: See TracChangeset for help on using the changeset viewer.