Changeset 83116 in webkit


Ignore:
Timestamp:
Apr 6, 2011 4:06:03 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-04-06 Siddharth Mathur <siddharth.mathur@nokia.com>

Reviewed by Benjamin Poulain.

[Qt][WK2][Symbian] Remove use of stack arrays with variable size
https://bugs.webkit.org/show_bug.cgi?id=57877

For better compiler portability, use new/delete for arrays when size
isn't known at compile time. Also fix one compiler warning about bitshift
operations on signed integers.

  • Platform/CoreIPC/qt/ConnectionQt.cpp: (CoreIPC::Connection::readyReadHandler): (CoreIPC::Connection::sendOutgoingMessage):
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r83113 r83116  
     12011-04-06  Siddharth Mathur  <siddharth.mathur@nokia.com>
     2
     3        Reviewed by Benjamin Poulain.
     4
     5        [Qt][WK2][Symbian] Remove use of stack arrays with variable size
     6        https://bugs.webkit.org/show_bug.cgi?id=57877
     7       
     8        For better compiler portability, use new/delete for arrays when size
     9        isn't known at compile time. Also fix one compiler warning about bitshift
     10        operations on signed integers.
     11        * Platform/CoreIPC/qt/ConnectionQt.cpp:
     12        (CoreIPC::Connection::readyReadHandler):
     13        (CoreIPC::Connection::sendOutgoingMessage):
     14
    1152011-04-06  Brian Weinstein  <bweinstein@apple.com>
    216
  • trunk/Source/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp

    r77765 r83116  
    4949
    5050enum {
    51     MessageBodyIsOOL = 1 << 31
     51    MessageBodyIsOOL = 1U << 31
    5252};
    5353
     
    148148    AttachmentResourceGuard<Deque<Attachment>, Deque<Attachment>::iterator> attachementDisposer(attachments);
    149149
    150     char attachmentDescriptorBuffer[CMSG_SPACE(sizeof(int) * (attachmentMaxAmount))];
     150    OwnArrayPtr<char> attachmentDescriptorBuffer = adoptArrayPtr(new char[CMSG_SPACE(sizeof(int) * (attachmentMaxAmount))]);
    151151    struct msghdr message;
    152152    memset(&message, 0, sizeof(message));
     
    155155    memset(&iov, 0, sizeof(iov));
    156156
    157     message.msg_control = attachmentDescriptorBuffer;
     157    message.msg_control = attachmentDescriptorBuffer.get();
    158158    message.msg_controllen = CMSG_SPACE(sizeof(int) * (attachmentMaxAmount));
    159159
     
    185185    if (messageInfo.attachmentCount()) {
    186186        if (controlMessage && controlMessage->cmsg_level == SOL_SOCKET && controlMessage->cmsg_type == SCM_RIGHTS) {
    187             size_t attachmentSizes[messageInfo.attachmentCount()];
    188             memcpy(attachmentSizes, messageData, sizeof(attachmentSizes));
     187            OwnArrayPtr<size_t> attachmentSizes = adoptArrayPtr(new size_t[messageInfo.attachmentCount()]);
     188            memcpy(attachmentSizes.get(), messageData, sizeof(size_t) * messageInfo.attachmentCount());
    189189
    190190            messageData += sizeof(attachmentSizes);
    191191
    192             int fileDescriptors[messageInfo.attachmentCount()];
    193             memcpy(fileDescriptors, CMSG_DATA(controlMessage), sizeof(fileDescriptors));
     192            OwnArrayPtr<int> fileDescriptors = adoptArrayPtr(new int[messageInfo.attachmentCount()]);
     193            memcpy(fileDescriptors.get(), CMSG_DATA(controlMessage), sizeof(int) * messageInfo.attachmentCount());
    194194
    195195            int attachmentCount = messageInfo.attachmentCount();
     
    321321    iov[0].iov_len = sizeof(messageInfo);
    322322
    323     char attachmentFDBuffer[CMSG_SPACE(sizeof(int) * (attachments.size()))];
    324     size_t attachmentSizes[attachments.size()];
     323    OwnArrayPtr<char> attachmentFDBuffer = adoptArrayPtr(new char[CMSG_SPACE(sizeof(int) * attachments.size())]);
     324    OwnArrayPtr<size_t> attachmentSizes = adoptArrayPtr(new size_t[attachments.size()]);
    325325
    326326    if (!attachments.isEmpty()) {
    327         message.msg_control = attachmentFDBuffer;
    328         message.msg_controllen = sizeof(attachmentFDBuffer);
     327        message.msg_control = attachmentFDBuffer.get();
     328        message.msg_controllen = sizeof(char) * CMSG_SPACE(sizeof(int) * attachments.size());
    329329
    330330        struct cmsghdr* cmsg = CMSG_FIRSTHDR(&message);
     
    341341        message.msg_controllen = cmsg->cmsg_len;
    342342
    343         iov[iovLength].iov_base = attachmentSizes;
    344         iov[iovLength].iov_len = sizeof(attachmentSizes);
     343        iov[iovLength].iov_base = attachmentSizes.get();
     344        iov[iovLength].iov_len = sizeof(size_t) * attachments.size();
    345345        ++iovLength;
    346346    }
Note: See TracChangeset for help on using the changeset viewer.