VirtualBox

Changeset 44440 in vbox for trunk


Ignore:
Timestamp:
Jan 29, 2013 9:24:20 AM (12 years ago)
Author:
vboxsync
Message:

Main: UsbWebcamInterface: do not crash if VM has no webcam.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/UsbWebcamInterface.cpp

    r44337 r44440  
    163163            if (mpRemote)
    164164            {
    165                 mpDrv->pIWebcamUp->pfnWebcamUpDetached(mpDrv->pIWebcamUp,
    166                                                        mpRemote->u64DeviceId);
     165                if (mpDrv->pIWebcamUp)
     166                {
     167                    mpDrv->pIWebcamUp->pfnWebcamUpDetached(mpDrv->pIWebcamUp,
     168                                                           mpRemote->u64DeviceId);
     169                }
    167170
    168171                /* No need to tell the server by calling VideoInDeviceDetach because the server is telling. */
     
    192195    if (RT_SUCCESS(rcRequest))
    193196    {
    194         mpDrv->pIWebcamUp->pfnWebcamUpAttached(mpDrv->pIWebcamUp,
    195                                                pRemote->u64DeviceId,
    196                                                (const PDMIWEBCAM_DEVICEDESC *)pDeviceDesc,
    197                                                cbDeviceDesc);
     197        if (mpDrv->pIWebcamUp)
     198        {
     199            mpDrv->pIWebcamUp->pfnWebcamUpAttached(mpDrv->pIWebcamUp,
     200                                                   pRemote->u64DeviceId,
     201                                                   (const PDMIWEBCAM_DEVICEDESC *)pDeviceDesc,
     202                                                   cbDeviceDesc);
     203        }
    198204    }
    199205    else
     
    216222    bool fResponse = (pvUser != NULL);
    217223
    218     mpDrv->pIWebcamUp->pfnWebcamUpControl(mpDrv->pIWebcamUp,
    219                                           fResponse,
    220                                           pvUser,
    221                                           mpRemote->u64DeviceId,
    222                                           (const PDMIWEBCAM_CTRLHDR *)pControl,
    223                                           cbControl);
     224    if (mpDrv->pIWebcamUp)
     225    {
     226        mpDrv->pIWebcamUp->pfnWebcamUpControl(mpDrv->pIWebcamUp,
     227                                              fResponse,
     228                                              pvUser,
     229                                              mpRemote->u64DeviceId,
     230                                              (const PDMIWEBCAM_CTRLHDR *)pControl,
     231                                              cbControl);
     232    }
    224233
    225234    RTMemFree(pvUser);
     
    232241                 rcRequest, pDeviceCtx, pFrame, cbFrame));
    233242
    234     mpDrv->pIWebcamUp->pfnWebcamUpFrame(mpDrv->pIWebcamUp,
    235                                         mpRemote->u64DeviceId,
    236                                         (const uint8_t *)pFrame,
    237                                         cbFrame);
     243    if (mpDrv->pIWebcamUp)
     244    {
     245        mpDrv->pIWebcamUp->pfnWebcamUpFrame(mpDrv->pIWebcamUp,
     246                                            mpRemote->u64DeviceId,
     247                                            (const uint8_t *)pFrame,
     248                                            cbFrame);
     249    }
    238250}
    239251
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