VirtualBox

Changeset 88238 in vbox


Ignore:
Timestamp:
Mar 22, 2021 11:44:59 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
143438
Message:

DrvAudio: Use AssertRCReturn on RTCritSectEnter status checks and just skip check on RTCritSectLeave. bugref:9890

File:
1 edited

Legend:

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

    r88236 r88238  
    455455{
    456456    AssertPtrReturn(pInterface, VERR_INVALID_POINTER);
    457 
     457    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
     458
     459    /** @todo r=bird: why?  It's not documented to ignore NULL streams.   */
    458460    if (!pStream)
    459461        return VINF_SUCCESS;
    460462
    461     PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    462 
    463463    int rc = RTCritSectEnter(&pThis->CritSect);
    464     if (RT_FAILURE(rc))
    465         return rc;
     464    AssertRCReturn(rc, rc);
    466465
    467466    LogFlowFunc(("[%s] enmStreamCmd=%s\n", pStream->szName, PDMAudioStrmCmdGetName(enmStreamCmd)));
     
    469468    rc = drvAudioStreamControlInternal(pThis, pStream, enmStreamCmd);
    470469
    471     int rc2 = RTCritSectLeave(&pThis->CritSect);
    472     if (RT_SUCCESS(rc))
    473         rc = rc2;
    474 
     470    RTCritSectLeave(&pThis->CritSect);
    475471    return rc;
    476472}
     
    11001096
    11011097    int rc = RTCritSectEnter(&pThis->CritSect);
    1102     if (RT_FAILURE(rc))
    1103         return rc;
     1098    AssertRCReturn(rc, rc);
    11041099
    11051100#ifdef VBOX_WITH_STATISTICS
     
    12141209    } while (0);
    12151210
    1216     int rc2 = RTCritSectLeave(&pThis->CritSect);
    1217     if (RT_SUCCESS(rc))
    1218         rc = rc2;
     1211    RTCritSectLeave(&pThis->CritSect);
    12191212
    12201213    if (RT_SUCCESS(rc))
     
    12731266
    12741267    int rc = RTCritSectEnter(&pThis->CritSect);
    1275     if (RT_FAILURE(rc))
    1276         return rc;
     1268    AssertRCReturn(rc, rc);
    12771269
    12781270    rc = drvAudioStreamIterateInternal(pThis, pStream);
    12791271
    1280     int rc2 = RTCritSectLeave(&pThis->CritSect);
    1281     if (RT_SUCCESS(rc))
    1282         rc = rc2;
     1272    RTCritSectLeave(&pThis->CritSect);
    12831273
    12841274    if (RT_FAILURE(rc))
     
    16501640
    16511641    int rc = RTCritSectEnter(&pThis->CritSect);
    1652     if (RT_FAILURE(rc))
    1653         return rc;
     1642    AssertRCReturn(rc, rc);
    16541643
    16551644    AssertMsg(pStream->enmDir == PDMAUDIODIR_OUT,
     
    18171806              dbgAudioStreamStatusToStr(szStreamSts, fStrmStatus), AudioMixBufLive(&pStream->Host.MixBuf), cfPlayedTotal, rc));
    18181807
    1819     int rc2 = RTCritSectLeave(&pThis->CritSect);
    1820     if (RT_SUCCESS(rc))
    1821         rc = rc2;
     1808    RTCritSectLeave(&pThis->CritSect);
    18221809
    18231810    if (RT_SUCCESS(rc))
     
    20202007
    20212008    int rc = RTCritSectEnter(&pThis->CritSect);
    2022     if (RT_FAILURE(rc))
    2023         return rc;
     2009    AssertRCReturn(rc, rc);
    20242010
    20252011    AssertMsg(pStream->enmDir == PDMAUDIODIR_IN,
     
    20862072        *pcFramesCaptured = cfCaptured;
    20872073
    2088     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2089     if (RT_SUCCESS(rc))
    2090         rc = rc2;
     2074    RTCritSectLeave(&pThis->CritSect);
    20912075
    20922076    if (RT_FAILURE(rc))
     
    21582142
    21592143    int rc = RTCritSectEnter(&pThis->CritSect);
    2160     if (RT_FAILURE(rc))
    2161         return rc;
     2144    AssertRCReturn(rc, rc);
    21622145
    21632146    for (size_t i = 0; i < cCallbacks; i++)
     
    22002183    /** @todo Undo allocations on error. */
    22012184
    2202     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2203     if (RT_SUCCESS(rc))
    2204         rc = rc2;
     2185    RTCritSectLeave(&pThis->CritSect);
    22052186
    22062187    return rc;
     
    22472228    }
    22482229
    2249     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2250     if (RT_SUCCESS(rc))
    2251         rc = rc2;
     2230    RTCritSectLeave(&pThis->CritSect);
    22522231
    22532232    LogFlowFunc(("Returning %Rrc\n", rc));
     
    24152394
    24162395    int rc2 = RTCritSectEnter(&pThis->CritSect);
    2417     AssertRC(rc2);
     2396    AssertRCReturnVoid(rc2);
    24182397
    24192398    if (pThis->pHostDrvAudio)
     
    24492428
    24502429    int rc = RTCritSectEnter(&pThis->CritSect);
    2451     if (RT_FAILURE(rc))
    2452         return rc;
     2430    AssertRCReturn(rc, rc);
    24532431
    24542432    do
     
    25332511
    25342512
    2535     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2536     if (RT_SUCCESS(rc))
    2537         rc = rc2;
     2513    RTCritSectLeave(&pThis->CritSect);
    25382514
    25392515    if (RT_SUCCESS(rc))
     
    25602536
    25612537    int rc = RTCritSectEnter(&pThis->CritSect);
    2562     if (RT_FAILURE(rc))
    2563         return rc;
     2538    AssertRCReturn(rc, rc);
    25642539
    25652540    LogFlowFunc(("Host=%s, Guest=%s\n", pCfgHost->szName, pCfgGuest->szName));
     
    27382713    }
    27392714
    2740     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2741     if (RT_SUCCESS(rc))
    2742         rc = rc2;
     2715    RTCritSectLeave(&pThis->CritSect);
    27432716
    27442717    LogFlowFuncLeaveRC(rc);
     
    27562729
    27572730    int rc = RTCritSectEnter(&pThis->CritSect);
    2758     if (RT_FAILURE(rc))
    2759         return rc;
     2731    AssertRCReturn(rc, rc);
    27602732
    27612733    bool *pfEnabled;
     
    28172789    }
    28182790
    2819     int rc3 = RTCritSectLeave(&pThis->CritSect);
    2820     if (RT_SUCCESS(rc))
    2821         rc = rc3;
     2791    RTCritSectLeave(&pThis->CritSect);
    28222792
    28232793    LogFlowFuncLeaveRC(rc);
     
    28342804    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    28352805
    2836     int rc2 = RTCritSectEnter(&pThis->CritSect);
    2837     if (RT_FAILURE(rc2))
    2838         return false;
    2839 
    2840     bool *pfEnabled;
     2806    int rc = RTCritSectEnter(&pThis->CritSect);
     2807    AssertRCReturn(rc, false);
     2808
     2809    bool fEnabled;
    28412810    if (enmDir == PDMAUDIODIR_IN)
    2842         pfEnabled = &pThis->In.fEnabled;
     2811        fEnabled = pThis->In.fEnabled;
    28432812    else if (enmDir == PDMAUDIODIR_OUT)
    2844         pfEnabled = &pThis->Out.fEnabled;
     2813        fEnabled = pThis->Out.fEnabled;
    28452814    else
    2846         AssertFailedReturn(false);
    2847 
    2848     const bool fIsEnabled = *pfEnabled;
    2849 
    2850     rc2 = RTCritSectLeave(&pThis->CritSect);
    2851     AssertRC(rc2);
    2852 
    2853     return fIsEnabled;
     2815        AssertFailedStmt(fEnabled = false);
     2816
     2817    RTCritSectLeave(&pThis->CritSect);
     2818
     2819    return fEnabled;
    28542820}
    28552821
     
    28652831
    28662832    int rc = RTCritSectEnter(&pThis->CritSect);
    2867     if (RT_FAILURE(rc))
    2868         return rc;
     2833    AssertRCReturn(rc, rc);
    28692834
    28702835    if (pThis->pHostDrvAudio)
     
    28782843        rc = VERR_PDM_NO_ATTACHED_DRIVER;
    28792844
    2880     int rc2 = RTCritSectLeave(&pThis->CritSect);
    2881     if (RT_SUCCESS(rc))
    2882         rc = rc2;
     2845    RTCritSectLeave(&pThis->CritSect);
    28832846
    28842847    LogFlowFuncLeaveRC(rc);
     
    28952858    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    28962859
    2897     PDMAUDIOBACKENDSTS backendSts = PDMAUDIOBACKENDSTS_UNKNOWN;
    2898 
    28992860    int rc = RTCritSectEnter(&pThis->CritSect);
    2900     if (RT_SUCCESS(rc))
    2901     {
    2902         if (pThis->pHostDrvAudio)
    2903         {
    2904             if (pThis->pHostDrvAudio->pfnGetStatus)
    2905                 backendSts = pThis->pHostDrvAudio->pfnGetStatus(pThis->pHostDrvAudio, enmDir);
    2906         }
     2861    AssertRCReturn(rc, PDMAUDIOBACKENDSTS_UNKNOWN);
     2862
     2863    PDMAUDIOBACKENDSTS fBackendStatus;
     2864    if (pThis->pHostDrvAudio)
     2865    {
     2866        if (pThis->pHostDrvAudio->pfnGetStatus)
     2867            fBackendStatus = pThis->pHostDrvAudio->pfnGetStatus(pThis->pHostDrvAudio, enmDir);
    29072868        else
    2908             backendSts = PDMAUDIOBACKENDSTS_NOT_ATTACHED;
    2909 
    2910         int rc2 = RTCritSectLeave(&pThis->CritSect);
    2911         if (RT_SUCCESS(rc))
    2912             rc = rc2;
    2913     }
    2914 
    2915     LogFlowFuncLeaveRC(rc);
    2916     return backendSts;
     2869            fBackendStatus = PDMAUDIOBACKENDSTS_UNKNOWN;
     2870    }
     2871    else
     2872        fBackendStatus = PDMAUDIOBACKENDSTS_NOT_ATTACHED;
     2873
     2874    RTCritSectLeave(&pThis->CritSect);
     2875
     2876    LogFlowFunc(("LEAVE - %#x\n", fBackendStatus));
     2877    return fBackendStatus;
    29172878}
    29182879
     
    29272888    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    29282889
    2929     int rc2 = RTCritSectEnter(&pThis->CritSect);
    2930     AssertRC(rc2);
     2890    int rc = RTCritSectEnter(&pThis->CritSect);
     2891    AssertRCReturn(rc, 0);
    29312892
    29322893    AssertMsg(pStream->enmDir == PDMAUDIODIR_IN, ("Can't read from a non-input stream\n"));
     
    29662927                {
    29672928                    if (fDisabled)
    2968                     {
    29692929                        LogRel(("Audio: Input for driver '%s' has been disabled, returning silence\n", pThis->szName));
    2970                     }
    29712930                    else
    29722931                        LogRel(("Audio: Warning: Input for stream '%s' of driver '%s' not ready (current input status is %#x), returning silence\n",
     
    29862945              pStream->szName, cbReadable, PDMAudioPropsBytesToMilli(&pStream->Host.Cfg.Props, cbReadable)));
    29872946
    2988     rc2 = RTCritSectLeave(&pThis->CritSect);
    2989     AssertRC(rc2);
     2947    RTCritSectLeave(&pThis->CritSect);
    29902948
    29912949    /* Return bytes instead of audio frames. */
     
    30032961    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    30042962
    3005     int rc2 = RTCritSectEnter(&pThis->CritSect);
    3006     AssertRC(rc2);
     2963    int rc = RTCritSectEnter(&pThis->CritSect);
     2964    AssertRCReturn(rc, 0);
    30072965
    30082966    AssertMsg(pStream->enmDir == PDMAUDIODIR_OUT, ("Can't write to a non-output stream\n"));
     
    30232981              pStream->szName, cbWritable, PDMAudioPropsBytesToMilli(&pStream->Host.Cfg.Props, cbWritable)));
    30242982
    3025     rc2 = RTCritSectLeave(&pThis->CritSect);
    3026     AssertRC(rc2);
     2983    RTCritSectLeave(&pThis->CritSect);
    30272984
    30282985    return cbWritable;
     
    30412998    PDRVAUDIO pThis = PDMIAUDIOCONNECTOR_2_DRVAUDIO(pInterface);
    30422999
    3043     int rc2 = RTCritSectEnter(&pThis->CritSect);
    3044     AssertRC(rc2);
     3000    int rc = RTCritSectEnter(&pThis->CritSect);
     3001    AssertRCReturn(rc, PDMAUDIOSTREAMSTS_FLAGS_NONE);
    30453002
    30463003    /* Is the stream scheduled for re-initialization? Do so now. */
     
    30543011    Log3Func(("[%s] %s\n", pStream->szName, dbgAudioStreamStatusToStr(szStreamSts, fStrmStatus)));
    30553012
    3056     rc2 = RTCritSectLeave(&pThis->CritSect);
    3057     AssertRC(rc2);
     3013    RTCritSectLeave(&pThis->CritSect);
    30583014
    30593015    return fStrmStatus;
     
    31173073        rc = VERR_WRONG_ORDER;
    31183074
    3119     int rc2 = RTCritSectLeave(&pThis->CritSect);
    3120     if (RT_SUCCESS(rc))
    3121         rc = rc2;
    3122 
     3075    RTCritSectLeave(&pThis->CritSect);
    31233076    LogFlowFuncLeaveRC(rc);
    31243077    return rc;
     
    35513504    PDRVAUDIO pThis = PDMINS_2_DATA(pDrvIns, PDRVAUDIO);
    35523505
    3553     int rc2 = RTCritSectEnter(&pThis->CritSect);
    3554     AssertRC(rc2);
     3506    int rc = RTCritSectEnter(&pThis->CritSect);
     3507    AssertRC(rc);
    35553508
    35563509    pThis->pHostDrvAudio = NULL;
     
    35583511    LogFunc(("%s\n", pThis->szName));
    35593512
    3560     rc2 = RTCritSectLeave(&pThis->CritSect);
    3561     AssertRC(rc2);
     3513    RTCritSectLeave(&pThis->CritSect);
    35623514}
    35633515
     
    36603612    LogFlowFuncEnter();
    36613613
    3662     int rc2;
    3663 
    36643614    if (RTCritSectIsInitialized(&pThis->CritSect))
    36653615    {
    3666         rc2 = RTCritSectEnter(&pThis->CritSect);
    3667         AssertRC(rc2);
     3616        int rc = RTCritSectEnter(&pThis->CritSect);
     3617        AssertRC(rc);
    36683618    }
    36693619
     
    36823632    RTListForEachSafe(&pThis->lstStreams, pStream, pStreamNext, PDMAUDIOSTREAM, ListEntry)
    36833633    {
    3684         rc2 = drvAudioStreamUninitInternal(pThis, pStream);
    3685         if (RT_SUCCESS(rc2))
     3634        int rc = drvAudioStreamUninitInternal(pThis, pStream);
     3635        if (RT_SUCCESS(rc))
    36863636        {
    36873637            RTListNodeRemove(&pStream->ListEntry);
     
    37173667    if (RTCritSectIsInitialized(&pThis->CritSect))
    37183668    {
    3719         rc2 = RTCritSectLeave(&pThis->CritSect);
    3720         AssertRC(rc2);
    3721 
    3722         rc2 = RTCritSectDelete(&pThis->CritSect);
    3723         AssertRC(rc2);
     3669        int rc = RTCritSectLeave(&pThis->CritSect);
     3670        AssertRC(rc);
     3671
     3672        rc = RTCritSectDelete(&pThis->CritSect);
     3673        AssertRC(rc);
    37243674    }
    37253675
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