VirtualBox

Changeset 62297 in vbox


Ignore:
Timestamp:
Jul 18, 2016 11:22:59 AM (8 years ago)
Author:
vboxsync
Message:

Audio/DrvAudio.cpp: Fixed a crash.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DrvAudio.cpp

    r62117 r62297  
    14671467}
    14681468
    1469 #if 1
    14701469static DECLCALLBACK(int) drvAudioGetConfig(PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOBACKENDCFG pCfg)
    14711470{
     
    14791478        return rc;
    14801479
    1481     rc = pThis->pHostDrvAudio->pfnGetConfig(pThis->pHostDrvAudio, pCfg);
     1480    if (pThis->pHostDrvAudio)
     1481    {
     1482        if (pThis->pHostDrvAudio->pfnGetConfig)
     1483            rc = pThis->pHostDrvAudio->pfnGetConfig(pThis->pHostDrvAudio, pCfg);
     1484        else
     1485            rc = VERR_NOT_SUPPORTED;
     1486    }
     1487    else
     1488        AssertFailed();
    14821489
    14831490    int rc2 = RTCritSectLeave(&pThis->CritSect);
     
    14951502    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    14961503
     1504    PDMAUDIOBACKENDSTS backendSts = PDMAUDIOBACKENDSTS_UNKNOWN;
     1505
    14971506    int rc = RTCritSectEnter(&pThis->CritSect);
    1498     if (RT_FAILURE(rc))
    1499         return PDMAUDIOBACKENDSTS_UNKNOWN;
    1500 
    1501     PDMAUDIOBACKENDSTS backendSts = pThis->pHostDrvAudio->pfnGetStatus(pThis->pHostDrvAudio, enmDir);
    1502 
    1503     int rc2 = RTCritSectLeave(&pThis->CritSect);
    1504     if (RT_SUCCESS(rc))
    1505         rc = rc2;
     1507    if (RT_SUCCESS(rc))
     1508    {
     1509        if (   pThis->pHostDrvAudio
     1510            && pThis->pHostDrvAudio->pfnGetStatus)
     1511        {
     1512             backendSts = pThis->pHostDrvAudio->pfnGetStatus(pThis->pHostDrvAudio, enmDir);
     1513        }
     1514
     1515        int rc2 = RTCritSectLeave(&pThis->CritSect);
     1516        if (RT_SUCCESS(rc))
     1517            rc = rc2;
     1518    }
    15061519
    15071520    LogFlowFuncLeaveRC(rc);
     
    16221635    return VINF_SUCCESS;
    16231636}
    1624 #endif
    16251637
    16261638static DECLCALLBACK(int) drvAudioStreamDestroy(PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOSTREAM pStream)
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