VirtualBox

Changeset 83368 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Mar 23, 2020 1:52:14 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
136573
Message:

IPRT: Added RTMemAllocZ and RTMemEfReallocZ[NP].

Location:
trunk/src/VBox/Runtime
Files:
3 edited

Legend:

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

    r82968 r83368  
    6262RT_EXPORT_SYMBOL(RTMemDupExTag);
    6363
     64
     65RTDECL(void *)  RTMemReallocZTag(void *pvOld, size_t cbOld, size_t cbNew, const char *pszTag) RT_NO_THROW_DEF
     66{
     67    void *pvDst = RTMemReallocTag(pvOld, cbNew, pszTag);
     68    if (pvDst && cbNew > cbOld)
     69        memset((uint8_t *)pvDst + cbOld, 0, cbNew - cbOld);
     70    return pvDst;
     71}
     72RT_EXPORT_SYMBOL(RTMemReallocZTag);
     73
  • trunk/src/VBox/Runtime/r0drv/alloc-ef-r0drv.cpp

    r82968 r83368  
    831831}
    832832
     833RTDECL(void *)  RTMemEfReallocZ(void *pvOld, size_t cbOld, size_t cbNew, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_DEF
     834{
     835    void *pvDst = rtR0MemRealloc("Realloc", RTMEMTYPE_RTMEMREALLOC, pvOld, cbNew, pszTag, ASMReturnAddress(), RT_SRC_POS_ARGS);
     836    if (pvDst && cbNew > cbOld)
     837        memset((uint8_t *)pvDst + cbOld, 0, cbNew - cbOld);
     838    return pvDst;
     839}
     840
    833841
    834842RTDECL(void)    RTMemEfFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW_DEF
     
    929937
    930938
     939RTDECL(void *)  RTMemEfReallocZNP(void *pvOld, size_t cbOld, size_t cbNew, const char *pszTag) RT_NO_THROW_DEF
     940{
     941    void *pvDst = rtR0MemRealloc("ReallocZ", RTMEMTYPE_RTMEMREALLOC, pvOld, cbNew, pszTag, ASMReturnAddress(), NULL, 0, NULL);
     942    if (pvDst && cbNew > cbOld)
     943        memset((uint8_t *)pvDst + cbOld, 0, cbNew - cbOld);
     944    return pvDst;
     945}
     946
     947
    931948RTDECL(void)    RTMemEfFreeNP(void *pv) RT_NO_THROW_DEF
    932949{
  • trunk/src/VBox/Runtime/r3/alloc-ef.cpp

    r82968 r83368  
    884884
    885885
     886RTDECL(void *)  RTMemEfReallocZ(void *pvOld, size_t cbOld, size_t cbNew, const char *pszTag, RT_SRC_POS_DECL) RT_NO_THROW_DEF
     887{
     888    void *pvDst = rtR3MemRealloc("ReallocZ", RTMEMTYPE_RTMEMREALLOC, pvOld, cbNew, pszTag, ASMReturnAddress(), RT_SRC_POS_ARGS);
     889    if (pvDst && cbNew > cbOld)
     890        memset((uint8_t *)pvDst + cbOld, 0, cbNew - cbOld);
     891    return pvDst;
     892}
     893
     894
    886895RTDECL(void)    RTMemEfFree(void *pv, RT_SRC_POS_DECL) RT_NO_THROW_DEF
    887896{
     
    981990
    982991
     992RTDECL(void *)  RTMemEfReallocZNP(void *pvOld, size_t cbOld, size_t cbNew, const char *pszTag) RT_NO_THROW_DEF
     993{
     994    void *pvDst = rtR3MemRealloc("ReallocZ", RTMEMTYPE_RTMEMREALLOC, pvOld, cbNew, pszTag, ASMReturnAddress(), NULL, 0, NULL);
     995    if (pvDst && cbNew > cbOld)
     996        memset((uint8_t *)pvDst + cbOld, 0, cbNew - cbOld);
     997    return pvDst;
     998}
     999
     1000
    9831001RTDECL(void)    RTMemEfFreeNP(void *pv) RT_NO_THROW_DEF
    9841002{
Note: See TracChangeset for help on using the changeset viewer.

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