VirtualBox

Changeset 6893 in vbox for trunk/src/VBox/Additions/x11


Ignore:
Timestamp:
Feb 11, 2008 11:13:53 AM (17 years ago)
Author:
vboxsync
Message:

Additions/x11: exception-safety in VBoxClient

Location:
trunk/src/VBox/Additions/x11/xclient
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/x11/xclient/seamless-host.h

    r6290 r6893  
    161161        {
    162162            LogRel(("VBoxService: seamless host object still running!  Stopping...\n"));
    163             stop();
     163            try
     164            {
     165                stop();
     166            }
     167            catch(...) {}
    164168        }
    165169    }
  • trunk/src/VBox/Additions/x11/xclient/seamless-x11.h

    r6290 r6893  
    135135    Display *mDisplay;
    136136public:
    137     VBoxGuestX11Display(void) {}
    138     bool init(char *name = 0)
     137    VBoxGuestX11Display(void) { mDisplay = NULL; }
     138    bool init(char *name = NULL)
    139139    {
    140140        mDisplay = XOpenDisplay(name);
    141         return (0 != mDisplay);
     141        return (mDisplay != NULL);
    142142    }
    143143    operator Display *() { return mDisplay; }
    144144    Display *get(void) { return mDisplay; }
    145     bool isValid(void) { return (0 != mDisplay); }
    146     int close(void) { return XCloseDisplay(mDisplay); }
    147     ~VBoxGuestX11Display() { close(); }
     145    bool isValid(void) { return (mDisplay != NULL); }
     146    int close(void)
     147    {
     148        int rc = XCloseDisplay(mDisplay);
     149        mDisplay = NULL;
     150        return rc;
     151    }
     152    ~VBoxGuestX11Display()
     153    {
     154        if (mDisplay != NULL)
     155            close();
     156    }
    148157};
    149158
     
    204213    {
    205214        /* We use post-increment in the operation to prevent the iterator from being invalidated. */
    206         for (iterator it = begin(); it != end(); removeWindow(it++));
     215        try
     216        {
     217            for (iterator it = begin(); it != end(); removeWindow(it++));
     218        }
     219        catch(...) {}
    207220    }
    208221
     
    327340    }
    328341
    329     ~VBoxGuestSeamlessX11() { uninit(); }
     342    ~VBoxGuestSeamlessX11()
     343    {
     344        try
     345        {
     346            uninit();
     347        }
     348        catch(...) {}
     349    }
    330350};
    331351
  • trunk/src/VBox/Additions/x11/xclient/thread.cpp

    r6202 r6893  
    5959    {
    6060        LogRelThisFunc(("Warning!  Stopping thread %s, as it is still running!\n", mName));
    61         stop(1000, 0);
     61        try
     62        {
     63            stop(1000, 0);
     64        }
     65        catch(...) {}
    6266    }
    6367}
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