Changeset 57286 in vbox for trunk/src/VBox/HostServices/DragAndDrop/service.cpp
- Timestamp:
- Aug 12, 2015 11:33:22 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/DragAndDrop/service.cpp
r55640 r57286 371 371 } 372 372 } 373 else 374 rc = VERR_NOT_ FOUND;373 else /* No host callback in place, so drag and drop is not supported by the host. */ 374 rc = VERR_NOT_SUPPORTED; 375 375 376 376 if (RT_FAILURE(rc)) 377 377 rc = m_pManager->nextMessage(u32Function, cParms, paParms); 378 378 379 /* Some error occurred? */ 380 if ( RT_FAILURE(rc) 381 && paParms[2].u.uint32) /* Blocking flag set? */ 379 /* Some error occurred or no (new) messages available? */ 380 if (RT_FAILURE(rc)) 382 381 { 383 /* Defer client returning. */ 384 rc = VINF_HGCM_ASYNC_EXECUTE; 382 if (paParms[2].u.uint32) /* Blocking flag set? */ 383 { 384 /* Defer client returning. */ 385 rc = VINF_HGCM_ASYNC_EXECUTE; 386 } 387 388 LogFlowFunc(("Message queue is empty, returning %Rrc to guest\n", rc)); 385 389 } 386 390 } … … 666 670 } 667 671 } 672 else /* No host callback in place, so drag and drop is not supported by the host. */ 673 rc = VERR_NOT_SUPPORTED; 668 674 } 669 675 break; … … 679 685 if (rc == VINF_HGCM_ASYNC_EXECUTE) 680 686 { 681 m_clientQueue.append(new HGCM::Client(u32ClientID, callHandle, 682 u32Function, cParms, paParms)); 683 } 684 685 if ( rc != VINF_HGCM_ASYNC_EXECUTE 686 && m_pHelpers) 687 { 687 try 688 { 689 LogFlowFunc(("Deferring guest call completion of client ID=%RU32\n", u32ClientID)); 690 m_clientQueue.append(new HGCM::Client(u32ClientID, callHandle, 691 u32Function, cParms, paParms)); 692 } 693 catch (std::bad_alloc) 694 { 695 rc = VERR_NO_MEMORY; 696 /* Don't report to guest. */ 697 } 698 } 699 else if (m_pHelpers) 700 { 701 /* Complete call on guest side. */ 688 702 m_pHelpers->pfnCallComplete(callHandle, rc); 689 703 } 704 else 705 rc = VERR_NOT_IMPLEMENTED; 690 706 691 707 LogFlowFunc(("Returning rc=%Rrc\n", rc));
Note:
See TracChangeset
for help on using the changeset viewer.