VirtualBox

Changeset 24365 in vbox


Ignore:
Timestamp:
Nov 5, 2009 3:07:25 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
54389
Message:

ConsoleImplTeleporter.cpp: Error info handling on windows (grrr!). Locking fix. Annoying warnings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/ConsoleImplTeleporter.cpp

    r24353 r24365  
    275275
    276276    AssertReturn(cbToWrite > 0, VINF_SUCCESS);
     277    AssertReturn(cbToWrite < UINT32_MAX, VERR_OUT_OF_RANGE);
    277278    AssertReturn(pState->mfIsSource, VERR_INVALID_HANDLE);
    278279
     
    282283        TELEPORTERTCPHDR Hdr;
    283284        Hdr.u32Magic = TELEPORTERTCPHDR_MAGIC;
    284         Hdr.cb       = RT_MIN(cbToWrite, TELEPORTERTCPHDR_MAX_SIZE);
     285        Hdr.cb       = RT_MIN((uint32_t)cbToWrite, TELEPORTERTCPHDR_MAX_SIZE);
    285286        int rc = RTTcpWrite(pState->mhSocket, &Hdr, sizeof(Hdr));
    286287        if (RT_FAILURE(rc))
     
    405406        if (RT_FAILURE(rc))
    406407            return rc;
    407         size_t cb = RT_MIN(pState->mcbReadBlock, cbToRead);
     408        uint32_t cb = (uint32_t)RT_MIN(pState->mcbReadBlock, cbToRead);
    408409        rc = RTTcpRead(pState->mhSocket, pvBuf, cb, pcbRead);
    409410        if (RT_FAILURE(rc))
     
    415416        if (pcbRead)
    416417        {
    417             pState->moffStream   += *pcbRead;
    418             pState->mcbReadBlock -= *pcbRead;
     418            cb = (uint32_t)*pcbRead;
     419            pState->moffStream   += cb;
     420            pState->mcbReadBlock -= cb;
    419421            return VINF_SUCCESS;
    420422        }
     
    569571     * Wait for Console::Teleport to change the state.
    570572     */
    571     { AutoWriteLock autoLock(); }
     573    { AutoWriteLock autoLock(this); }
    572574
    573575    BOOL fCancelled = TRUE;
     
    683685        hrc = pState->mptrConsole->teleporterSrc(pState);
    684686
     687    /* Aaarg! setMachineState trashes error info on Windows, so we have to
     688       complete things here on failure instead of right before cleanup. */
     689    if (FAILED(hrc))
     690        pState->mptrProgress->notifyComplete(hrc);
     691
    685692    /* We can no longer be cancelled (success), or it doesn't matter any longer (failure). */
    686693    pState->mptrProgress->setCancelCallback(NULL, NULL);
     
    705712        autoVMCaller.release();
    706713        hrc = pState->mptrConsole->powerDown();
     714        pState->mptrProgress->notifyComplete(hrc);
    707715    }
    708716    else
     
    763771    }
    764772    autoLock.leave();
    765 
    766     pState->mptrProgress->notifyComplete(hrc);
    767773
    768774    /*
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