VirtualBox

Changeset 89720 in vbox for trunk/include


Ignore:
Timestamp:
Jun 15, 2021 6:53:58 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145171
Message:

com/errorprint: Teach it how to deal with warnings (print the message and continue as usual), using the appropriate flagging as warnings. bugref:3582

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/com/errorprint.h

    r86141 r89720  
    4848// compiled only once for all front-ends
    4949void GluePrintErrorInfo(const com::ErrorInfo &info);
    50 void GluePrintErrorContext(const char *pcszContext, const char *pcszSourceFile, uint32_t uLine);
     50void GluePrintErrorContext(const char *pcszContext, const char *pcszSourceFile, uint32_t uLine, bool fWarning = false);
    5151void GluePrintRCMessage(HRESULT rc);
    5252void GlueHandleComError(ComPtr<IUnknown> iface, const char *pcszContext, HRESULT rc, const char *pcszSourceFile, uint32_t uLine);
     
    8888    if (1) { \
    8989        type hrc = iface->method; \
    90         if (SUCCEEDED(hrc)) \
     90        if (SUCCEEDED(hrc) && !SUCCEEDED_WARNING(hrc)) \
    9191        { /*likely*/ } \
    9292        else \
    9393        { \
    9494            com::GlueHandleComError(iface, #method, (hrc), __FILE__, __LINE__); \
    95             stmtError; \
     95            if (!SUCCEEDED_WARNING(hrc)) \
     96            { \
     97                stmtError; \
     98            } \
    9699        } \
    97100    } else do { /* nothing */ } while (0)
     
    112115    do { \
    113116        rc = iface->method; \
    114         if (FAILED(rc)) \
     117        if (FAILED(rc) || SUCCEEDED_WARNING(rc)) \
    115118            com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
    116119    } while (0)
     
    144147    do { \
    145148        rc = iface->method; \
    146         if (FAILED(rc)) \
    147         { \
    148             com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
    149             stmt; \
     149        if (FAILED(rc) || SUCCEEDED_WARNING(rc)) \
     150        { \
     151            com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
     152            if (!SUCCEEDED_WARNING(rc) \
     153            { \
     154                stmt; \
     155            } \
    150156        } \
    151157    } while (0)
     
    183189    ({ \
    184190        rc = iface->method; \
    185         if (FAILED(rc)) \
    186         { \
    187             com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
    188             break; \
     191        if (FAILED(rc) || SUCCEEDED_WARNING(rc)) \
     192        { \
     193            com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
     194            if (!SUCCEEDED_WARNING(rc)) \
     195                break; \
    189196        } \
    190197    })
     
    197204        { \
    198205            com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
    199             break; \
     206            if (!SUCCEEDED_WARNING(rc)) \
     207                break; \
    200208        } \
    201209    } \
     
    243251    do { \
    244252        rc = iface->method; \
    245         if (FAILED(rc)) \
    246         { \
    247             com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
    248             return (ret); \
     253        if (FAILED(rc) || SUCCEEDED_WARNING(rc)) \
     254        { \
     255            com::GlueHandleComError(iface, #method, rc, __FILE__, __LINE__); \
     256            if (!SUCCEEDED_WARNING(rc)) \
     257                return (ret); \
    249258        } \
    250259    } while (0)
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