VirtualBox

Changeset 39892 in vbox for trunk/src/VBox/Devices/VMMDev


Ignore:
Timestamp:
Jan 26, 2012 8:22:33 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
75942
Message:

VMMDev: Allow some more function pointers to be NULL in PDMIVMMDEVCONNECTOR.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/VMMDev/VMMDev.cpp

    r39890 r39892  
    533533    strcpy(pThis->guestInfo2.szName, pszName);
    534534
    535     pThis->pDrv->pfnUpdateGuestInfo2(pThis->pDrv, uFullVersion, pszName, pInfo2->additionsRevision, pInfo2->additionsFeatures);
     535    if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestInfo2)
     536        pThis->pDrv->pfnUpdateGuestInfo2(pThis->pDrv, uFullVersion, pszName, pInfo2->additionsRevision, pInfo2->additionsFeatures);
    536537
    537538    return VINF_SUCCESS;
     
    680681    }
    681682
    682     if (pThis->pDrv)
     683    if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestStatus)
    683684        pThis->pDrv->pfnUpdateGuestStatus(pThis->pDrv, pStatus->facility, pStatus->status, pStatus->flags, &Now);
    684685
     
    808809                        pThis->guestInfo.interfaceVersion,
    809810                        pThis->guestInfo.osType));
    810                 pThis->pDrv->pfnUpdateGuestInfo(pThis->pDrv, &pThis->guestInfo);
     811                if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestInfo)
     812                    pThis->pDrv->pfnUpdateGuestInfo(pThis->pDrv, &pThis->guestInfo);
    811813            }
    812814
     
    910912                            guestCaps->caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS ? "yes" : "no"));
    911913
    912                     pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, guestCaps->caps);
     914                    if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestCapabilities)
     915                        pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, guestCaps->caps);
    913916                }
    914917                pRequestHeader->rc = VINF_SUCCESS;
     
    941944                        pThis->guestCaps & VMMDEV_GUEST_SUPPORTS_GRAPHICS ? "yes" : "no"));
    942945
    943                 pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, pThis->guestCaps);
     946                if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestCapabilities)
     947                    pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, pThis->guestCaps);
    944948                pRequestHeader->rc = VINF_SUCCESS;
    945949            }
     
    30153019        if (pThis->pDrv)
    30163020        {
    3017             if (pThis->guestInfo2.uFullVersion)
     3021            if (pThis->guestInfo2.uFullVersion && pThis->pDrv->pfnUpdateGuestInfo2)
    30183022                pThis->pDrv->pfnUpdateGuestInfo2(pThis->pDrv, pThis->guestInfo2.uFullVersion, pThis->guestInfo2.szName,
    30193023                                                 pThis->guestInfo2.uRevision, pThis->guestInfo2.fFeatures);
    3020             pThis->pDrv->pfnUpdateGuestInfo(pThis->pDrv, &pThis->guestInfo);
    3021         }
    3022 
    3023         for (uint32_t i = 0; i < pThis->cFacilityStatuses; i++) /* ascending order! */
    3024             if (   pThis->aFacilityStatuses[i].uStatus != VBoxGuestFacilityStatus_Inactive
    3025                 || !pThis->aFacilityStatuses[i].fFixed)
    3026                 pThis->pDrv->pfnUpdateGuestStatus(pThis->pDrv,
    3027                                                   pThis->aFacilityStatuses[i].uFacility,
    3028                                                   pThis->aFacilityStatuses[i].uStatus,
    3029                                                   pThis->aFacilityStatuses[i].fFlags,
    3030                                                   &pThis->aFacilityStatuses[i].TimeSpecTS);
    3031     }
    3032     if (pThis->pDrv)
     3024            if (pThis->pDrv->pfnUpdateGuestInfo)
     3025                pThis->pDrv->pfnUpdateGuestInfo(pThis->pDrv, &pThis->guestInfo);
     3026
     3027            if (pThis->pDrv->pfnUpdateGuestStatus)
     3028            {
     3029                for (uint32_t i = 0; i < pThis->cFacilityStatuses; i++) /* ascending order! */
     3030                    if (   pThis->aFacilityStatuses[i].uStatus != VBoxGuestFacilityStatus_Inactive
     3031                        || !pThis->aFacilityStatuses[i].fFixed)
     3032                        pThis->pDrv->pfnUpdateGuestStatus(pThis->pDrv,
     3033                                                          pThis->aFacilityStatuses[i].uFacility,
     3034                                                          pThis->aFacilityStatuses[i].uStatus,
     3035                                                          pThis->aFacilityStatuses[i].fFlags,
     3036                                                          &pThis->aFacilityStatuses[i].TimeSpecTS);
     3037            }
     3038        }
     3039    }
     3040    if (pThis->pDrv && pThis->pDrv->pfnUpdateGuestCapabilities)
    30333041        pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, pThis->guestCaps);
    30343042
     
    31763184     * Call the update functions as required.
    31773185     */
    3178     if (fVersionChanged)
     3186    if (fVersionChanged && pThis->pDrv && pThis->pDrv->pfnUpdateGuestInfo)
    31793187        pThis->pDrv->pfnUpdateGuestInfo(pThis->pDrv, &pThis->guestInfo);
    3180     if (fCapsChanged)
     3188    if (fCapsChanged    && pThis->pDrv && pThis->pDrv->pfnUpdateGuestCapabilities)
    31813189        pThis->pDrv->pfnUpdateGuestCapabilities(pThis->pDrv, pThis->guestCaps);
    31823190
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