VirtualBox

Ignore:
Timestamp:
Jul 30, 2010 8:02:05 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
64275
Message:

xpcom: Use RTMem* for memory alloc so that we can more easily wrap direct it to the electric fence heap.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcMessage.cpp

    r1 r31259  
    4040#include "prlog.h"
    4141#include "ipcMessage.h"
     42#ifdef VBOX_USE_IPRT_IN_XPCOM
     43# include <iprt/mem.h>
     44#endif
    4245
    4346ipcMessage::~ipcMessage()
    4447{
    4548    if (mMsgHdr)
     49#ifdef VBOX_USE_IPRT_IN_XPCOM
     50        RTMemFree(mMsgHdr);
     51#else
    4652        free(mMsgHdr);
     53#endif
    4754}
    4855
     
    5158{
    5259    if (mMsgHdr) {
     60#ifdef VBOX_USE_IPRT_IN_XPCOM
     61        RTMemFree(mMsgHdr);
     62#else
    5363        free(mMsgHdr);
     64#endif
    5465        mMsgHdr = NULL;
    5566    }
     
    6879    // copy buf if non-null
    6980    if (mMsgHdr) {
     81#ifdef VBOX_USE_IPRT_IN_XPCOM
     82        clone->mMsgHdr = (ipcMessageHeader *) RTMemDup(mMsgHdr, mMsgHdr->mLen);
     83#else
    7084        clone->mMsgHdr = (ipcMessageHeader *) malloc(mMsgHdr->mLen);
    7185        memcpy(clone->mMsgHdr, mMsgHdr, mMsgHdr->mLen);
     86#endif
    7287    }
    7388    else
     
    8499{
    85100    if (mMsgHdr)
     101#ifdef VBOX_USE_IPRT_IN_XPCOM
     102        RTMemFree(mMsgHdr);
     103#else
    86104        free(mMsgHdr);
     105#endif
    87106    mMsgComplete = PR_FALSE;
    88107
    89108    // allocate message data
    90109    PRUint32 msgLen = IPC_MSG_HEADER_SIZE + dataLen;
     110#ifdef VBOX_USE_IPRT_IN_XPCOM
     111    mMsgHdr = (ipcMessageHeader *) RTMemAlloc(msgLen);
     112#else
    91113    mMsgHdr = (ipcMessageHeader *) malloc(msgLen);
     114#endif
    92115    if (!mMsgHdr) {
    93116        mMsgHdr = NULL;
     
    123146ipcMessage::Equals(const nsID &target, const char *data, PRUint32 dataLen) const
    124147{
    125     return mMsgComplete && 
     148    return mMsgComplete &&
    126149           mMsgHdr->mTarget.Equals(target) &&
    127150           DataLen() == dataLen &&
     
    199222                bufLen -= count;
    200223                *bytesRead = count;
    201                
     224
    202225                if (MsgLen() > IPC_MSG_GUESSED_SIZE) {
    203226                    // realloc message buffer to the correct size
     227#ifdef VBOX_USE_IPRT_IN_XPCOM
     228                    mMsgHdr = (ipcMessageHeader *) RTMemRealloc(mMsgHdr, MsgLen());
     229#else
    204230                    mMsgHdr = (ipcMessageHeader *) realloc(mMsgHdr, MsgLen());
     231#endif
    205232                }
    206233            }
     
    212239            // allocate a partial buffer
    213240            PRUint32 msgLen = IPC_MSG_GUESSED_SIZE;
     241#ifdef VBOX_USE_IPRT_IN_XPCOM
     242            mMsgHdr = (ipcMessageHeader *) RTMemAlloc(msgLen);
     243#else
    214244            mMsgHdr = (ipcMessageHeader *) malloc(msgLen);
     245#endif
    215246            if (!mMsgHdr)
    216247                return PR_FAILURE;
     
    223254        else {
    224255            PRUint32 msgLen = *(PRUint32 *) buf;
     256#ifdef VBOX_USE_IPRT_IN_XPCOM
     257            mMsgHdr = (ipcMessageHeader *) RTMemAlloc(msgLen);
     258#else
    225259            mMsgHdr = (ipcMessageHeader *) malloc(msgLen);
     260#endif
    226261            if (!mMsgHdr)
    227262                return PR_FAILURE;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette