VirtualBox

Changes between Initial Version and Version 1 of Ticket #19226, comment 16


Ignore:
Timestamp:
02/24/2020 04:02:32 PM (3 years ago)
Author:
fbatschu
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #19226, comment 16

    initial v1  
    3838#8  0x00007ff61ed8b3bf in clone () from /lib64/libc.so.6 
    3939}}} 
     40 
     41This corresponds to the following code in 
     42 
     43trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp 
     44 
     45{{{ 
     46178 int ShClSvcImplReadData(PSHCLCLIENT pClient,                                                                                        
     47179                         PSHCLCLIENTCMDCTX pCmdCtx, SHCLFORMAT uFormat, void *pvData, uint32_t cbData, uint32_t *pcbActual)          
     48180 {                                                                                                                                   
     49181     AssertPtrReturn(pClient, VERR_INVALID_POINTER);                                                                                 
     50182     AssertPtrReturn(pCmdCtx, VERR_INVALID_POINTER);                                                                                 
     51183     AssertPtrReturn(pvData,  VERR_INVALID_POINTER);                                                                                 
     52184                                                                                                                                     
     53185     RT_NOREF(pCmdCtx);                                                                                                              
     54186                                                                                                                                     
     55187     LogFlowFunc(("pClient=%p, uFormat=%02X, pv=%p, cb=%u, pcbActual=%p\n",                                                          
     56188                  pClient, uFormat, pvData, cbData, pcbActual));                                                                     
     57189                                                                                                                                     
     58190     int rc = VINF_SUCCESS;                                                                                                          
     59191                                                                                                                                     
     60192     CLIPREADCBREQ *pReq = (CLIPREADCBREQ *)RTMemAllocZ(sizeof(CLIPREADCBREQ));                                                      
     61193     if (pReq)                                                                                                                       
     62194     {                                                                                                                               
     63195         pReq->pv        = pvData;                                                                                                   
     64196         pReq->cb        = cbData;                                                                                                   
     65197         pReq->pcbActual = pcbActual;                                                                                                
     66198         const SHCLEVENTID idEvent = ShClEventIdGenerateAndRegister(&pClient->EventSrc);                                             
     67199         pReq->idEvent    = idEvent;                                                                                                 
     68200         if (idEvent != NIL_SHCLEVENTID)                                                                                             
     69201         {                                                                                                                           
     70202             rc = ShClX11ReadDataFromX11(&pClient->State.pCtx->X11, uFormat, pReq);                                                  
     71203             if (RT_SUCCESS(rc))                                                                                                     
     72204             {                                                                                                                       
     73205                 PSHCLEVENTPAYLOAD pPayload;                                                                                         
     74206                 rc = ShClEventWait(&pClient->EventSrc, idEvent, 30 * 1000, &pPayload);                                              
     75207                 if (RT_SUCCESS(rc))                                                                                                 
     76208                 {                                                                                                                   
     77209                     memcpy(pvData, pPayload->pvData, RT_MIN(cbData, pPayload->cbData));                   
     78}}} 

www.oracle.com
ContactPrivacy policyTerms of Use