VirtualBox

Ignore:
Timestamp:
Dec 16, 2010 1:59:44 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
69022
Message:

RTLdrLoadEx use RTERRINFO.

File:
1 edited

Legend:

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

    r35152 r35183  
    9696RTDECL(int) RTLdrLoad(const char *pszFilename, PRTLDRMOD phLdrMod)
    9797{
    98     return RTLdrLoadEx(pszFilename, phLdrMod, 0 /*=fFlags*/, NULL, 0);
     98    return RTLdrLoadEx(pszFilename, phLdrMod, 0 /*fFlags*/, NULL);
    9999}
    100100RT_EXPORT_SYMBOL(RTLdrLoad);
    101101
    102102
    103 RTDECL(int) RTLdrLoadEx(const char *pszFilename, PRTLDRMOD phLdrMod, uint32_t fFlags, char *pszError, size_t cbError)
    104 {
    105     LogFlow(("RTLdrLoadEx: pszFilename=%p:{%s} phLdrMod=%p fFlags=%08x pszError=%p cbError=%zu\n", pszFilename, pszFilename, phLdrMod, fFlags, pszError, cbError));
     103RTDECL(int) RTLdrLoadEx(const char *pszFilename, PRTLDRMOD phLdrMod, uint32_t fFlags, PRTERRINFO pErrInfo)
     104{
     105    LogFlow(("RTLdrLoadEx: pszFilename=%p:{%s} phLdrMod=%p fFlags=%#x pErrInfo=%p\n", pszFilename, pszFilename, phLdrMod, fFlags, pErrInfo));
    106106
    107107    /*
    108108     * Validate and massage the input.
    109109     */
    110     if (!pszError)
    111         AssertReturn(!cbError, VERR_INVALID_PARAMETER);
    112     else
    113     {
    114         AssertPtrReturn(pszError, VERR_INVALID_POINTER);
    115         if (cbError)
    116             *pszError = '\0';
    117         else
    118             pszError = NULL;
    119     }
     110    RTErrInfoClear(pErrInfo);
    120111    AssertPtrReturn(pszFilename, VERR_INVALID_POINTER);
    121112    AssertPtrReturn(phLdrMod, VERR_INVALID_POINTER);
     
    136127         * Attempt to open the module.
    137128         */
    138         rc = rtldrNativeLoad(pszFilename, &pMod->hNative, fFlags, pszError, cbError);
     129        rc = rtldrNativeLoad(pszFilename, &pMod->hNative, fFlags, pErrInfo);
    139130        if (RT_SUCCESS(rc))
    140131        {
     
    146137        RTMemFree(pMod);
    147138    }
    148     else if (cbError)
    149         RTStrPrintf(pszError, cbError, "Failed to allocate %zu bytes for the module handle", sizeof(*pMod));
     139    else
     140        RTErrInfoSetF(pErrInfo, rc, "Failed to allocate %zu bytes for the module handle", sizeof(*pMod));
    150141    *phLdrMod = NIL_RTLDRMOD;
    151142    LogFlow(("RTLdrLoad: returns %Rrc\n", rc));
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