VirtualBox

Changeset 30683 in vbox


Ignore:
Timestamp:
Jul 6, 2010 5:46:22 PM (15 years ago)
Author:
vboxsync
Message:

Main: add missing ErrorInfo operator=

Location:
trunk
Files:
2 edited

Legend:

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

    r30682 r30683  
    124124    }
    125125
    126     ErrorInfo(const ErrorInfo &x);
    127 
    128     virtual ~ErrorInfo();
     126    ErrorInfo(const ErrorInfo &x)
     127    {
     128        copyFrom(x);
     129    }
     130
     131    virtual ~ErrorInfo()
     132    {
     133        cleanup();
     134    }
     135
     136    ErrorInfo& operator=(const ErrorInfo& x)
     137    {
     138        cleanup();
     139        copyFrom(x);
     140        return *this;
     141    }
    129142
    130143    /**
     
    240253    void setNull()
    241254    {
    242         mIsBasicAvailable = false;
    243         mIsFullAvailable = false;
    244 
    245         if (m_pNext)
    246         {
    247             delete m_pNext;
    248             m_pNext = NULL;
    249         }
    250 
    251         mResultCode = S_OK;
    252         mInterfaceID.clear();
    253         mComponent.setNull();
    254         mText.setNull();
    255         mInterfaceName.setNull();
    256         mCalleeIID.clear();
    257         mCalleeName.setNull();
    258         mErrorInfo.setNull();
     255        cleanup();
    259256    }
    260257
     
    267264          m_pNext(NULL)
    268265    { }
     266
     267    void copyFrom(const ErrorInfo &x);
     268    void cleanup();
    269269
    270270    void init(bool aKeepObj = false);
  • trunk/src/VBox/Main/glue/ErrorInfo.cpp

    r30682 r30683  
    4444////////////////////////////////////////////////////////////////////////////////
    4545
    46 ErrorInfo::ErrorInfo(const ErrorInfo &x)
     46void ErrorInfo::copyFrom(const ErrorInfo &x)
    4747{
    4848    mIsBasicAvailable = x.mIsBasicAvailable;
     
    6666}
    6767
    68 ErrorInfo::~ErrorInfo()
    69 {
     68void ErrorInfo::cleanup()
     69{
     70    mIsBasicAvailable = false;
     71    mIsFullAvailable = false;
     72
    7073    if (m_pNext)
    7174    {
     
    7376        m_pNext = NULL;
    7477    }
     78
     79    mResultCode = S_OK;
     80    mInterfaceID.clear();
     81    mComponent.setNull();
     82    mText.setNull();
     83    mInterfaceName.setNull();
     84    mCalleeIID.clear();
     85    mCalleeName.setNull();
     86    mErrorInfo.setNull();
    7587}
    7688
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