VirtualBox

Ignore:
Timestamp:
Apr 13, 2010 7:29:42 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60013
Message:

IPRT: Some efence adjustments, adding RTMemAllocVar and RTMemAllocZVar for dealing with struct + string style allocations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/alloc/alloc.cpp

    r26344 r28271  
    3838#include <iprt/assert.h>
    3939#include <iprt/string.h>
     40
     41#ifdef RTMEM_WRAP_TO_EF_APIS
     42# undef RTMemAllocVar
     43# undef RTMemAllocZVar
     44# undef RTMemDup
     45# undef RTMemDupEx
     46#endif
     47
     48
     49
     50/**
     51 * Wrapper around RTMemAlloc for automatically aligning variable sized
     52 * allocations so that the various electric fence heaps works correctly.
     53 *
     54 * @returns See RTMemAlloc.
     55 * @param   cbUnaligned         The unaligned size.
     56 */
     57RTDECL(void *) RTMemAllocVar(size_t cbUnaligned)
     58{
     59    size_t cbAligned;
     60    if (cbUnaligned >= 16)
     61        cbAligned = RT_ALIGN_Z(cbUnaligned, 16);
     62    else
     63        cbAligned = RT_ALIGN_Z(cbUnaligned, sizeof(void *));
     64    return RTMemAlloc(cbAligned);
     65}
     66
     67
     68/**
     69 * Wrapper around RTMemAllocZ for automatically aligning variable sized
     70 * allocations so that the various electric fence heaps works correctly.
     71 *
     72 * @returns See RTMemAllocZ.
     73 * @param   cbUnaligned         The unaligned size.
     74 */
     75RTDECL(void *) RTMemAllocZVar(size_t cbUnaligned)
     76{
     77    size_t cbAligned;
     78    if (cbUnaligned >= 16)
     79        cbAligned = RT_ALIGN_Z(cbUnaligned, 16);
     80    else
     81        cbAligned = RT_ALIGN_Z(cbUnaligned, sizeof(void *));
     82    return RTMemAllocZ(cbAligned);
     83}
    4084
    4185
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