VirtualBox

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


Ignore:
Timestamp:
Feb 24, 2020 4:02:32 PM (4 years ago)
Author:
Frank Batschulat (Oracle)

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}}}

© 2023 Oracle
ContactPrivacy policyTerms of Use