VirtualBox

Changeset 42319 in vbox for trunk/src


Ignore:
Timestamp:
Jul 23, 2012 11:39:42 AM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
79389
Message:

VBoxClient: don't crash if we can't connect to HGCM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/x11/VBoxClient/draganddrop.cpp

    r42263 r42319  
    595595        XChangeProperty(m_pDisplay, m_proxyWin, xAtom(XA_XdndAware), XA_ATOM, 32, PropModeReplace,
    596596                        reinterpret_cast<unsigned char*>(&ver), 1);
    597     }while(0);
     597    } while(0);
    598598
    599599    m_state = Initialized;
     
    11371137            }
    11381138        }
    1139     }while(tries--);
     1139    } while(tries--);
    11401140    if (clme)
    11411141    {
     
    16651665                }
    16661666            }
    1667         }while(!ASMAtomicReadBool(&m_fSrvStopping));
    1668     }while(0);
     1667        } while(!ASMAtomicReadBool(&m_fSrvStopping));
     1668    } while(0);
    16691669
    16701670    LogRelFlowFunc(("returning %Rrc\n", rc));
     
    16991699                            0, RTTHREADTYPE_MSG_PUMP, RTTHREADFLAGS_WAITABLE,
    17001700                            "X11-NOTIFY");
    1701     }while(0);
     1701    } while(0);
    17021702
    17031703    /* Cleanup on failure */
     
    17131713    ASMAtomicWriteBool(&m_fSrvStopping, true);
    17141714
    1715     /* Send a x11 client messages to the x11 event loop. */
    1716     XClientMessageEvent m;
    1717     RT_ZERO(m);
    1718     m.type         = ClientMessage;
    1719     m.display      = m_pDisplay;
    1720     m.window       = None;
    1721     m.message_type = xAtom(XA_dndstop);
    1722     m.format       = 32;
    1723     int xrc = XSendEvent(m_pDisplay, None, True, NoEventMask, reinterpret_cast<XEvent*>(&m));
    1724     if (RT_UNLIKELY(xrc == 0))
    1725         DO(("DnD_TERM: error sending xevent\n"));
     1715    asm volatile ("int3");
     1716    if (m_pDisplay)
     1717    {
     1718        /* Send a x11 client messages to the x11 event loop. */
     1719        XClientMessageEvent m;
     1720        RT_ZERO(m);
     1721        m.type         = ClientMessage;
     1722        m.display      = m_pDisplay;
     1723        m.window       = None;
     1724        m.message_type = xAtom(XA_dndstop);
     1725        m.format       = 32;
     1726        int xrc = XSendEvent(m_pDisplay, None, True, NoEventMask, reinterpret_cast<XEvent*>(&m));
     1727        if (RT_UNLIKELY(xrc == 0))
     1728                DO(("DnD_TERM: error sending xevent\n"));
     1729    }
    17261730    /* Wait for our event threads to stop. */
    17271731//    if (m_hX11Thread)
     
    17611765                return rc;
    17621766        }
    1763     }while(!ASMAtomicReadBool(&pSrv->m_fSrvStopping));
     1767    } while(!ASMAtomicReadBool(&pSrv->m_fSrvStopping));
    17641768
    17651769    return VINF_SUCCESS;
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