VirtualBox

Changeset 100637 in vbox for trunk


Ignore:
Timestamp:
Jul 18, 2023 4:12:28 PM (19 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158471
Message:

Shared Clipboard: Relaxed check of shClTransferCancelOrError() a bit, so that it can be called if already cancelled. bugref:9437

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp

    r100636 r100637  
    22582258    shClTransferLock(pTransfer);
    22592259
    2260     AssertMsgReturnStmt(pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_STARTED,
    2261                         ("Wrong status (currently is %s)\n", ShClTransferStatusToStr(pTransfer->State.enmStatus)),
    2262                         shClTransferUnlock(pTransfer), VERR_WRONG_ORDER);
    2263 
    22642260    int rc2;
    2265     if (rc == VERR_CANCELLED)
    2266     {
    2267         rc2 = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_CANCELED);
    2268 
    2269         if (pTransfer->Callbacks.pfnOnCompleted)
    2270             pTransfer->Callbacks.pfnOnCompleted(&pTransfer->CallbackCtx, VERR_CANCELLED);
    2271     }
    2272     else
    2273     {
    2274         rc2 = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_ERROR);
    2275 
    2276         if (pTransfer->Callbacks.pfnOnError)
    2277             pTransfer->Callbacks.pfnOnError(&pTransfer->CallbackCtx, rc);
    2278     }
     2261
     2262    if (pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_STARTED)
     2263    {
     2264        if (rc == VERR_CANCELLED)
     2265        {
     2266            rc2 = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_CANCELED);
     2267
     2268            if (pTransfer->Callbacks.pfnOnCompleted)
     2269                pTransfer->Callbacks.pfnOnCompleted(&pTransfer->CallbackCtx, VERR_CANCELLED);
     2270        }
     2271        else
     2272        {
     2273            rc2 = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_ERROR);
     2274
     2275            if (pTransfer->Callbacks.pfnOnError)
     2276                pTransfer->Callbacks.pfnOnError(&pTransfer->CallbackCtx, rc);
     2277        }
     2278    }
     2279    else /* Nothing to do. */
     2280        rc2 = VINF_SUCCESS;
    22792281
    22802282    shClTransferUnlock(pTransfer);
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