VirtualBox

Ignore:
Timestamp:
Jul 12, 2018 9:06:33 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123672
Message:

*: Made RT_UOFFSETOF, RT_OFFSETOF, RT_UOFFSETOF_ADD and RT_OFFSETOF_ADD work like builtin_offsetof() and require compile time resolvable requests, adding RT_UOFFSETOF_DYN for the dynamic questions that can only be answered at runtime.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r71680 r73097  
    935935    CRASSERT(rc == VINF_SUCCESS);
    936936
    937     rc = SSMR3PutMem(pSSM, pMI, RT_OFFSETOF(CRMuralInfo, CreateInfo));
     937    rc = SSMR3PutMem(pSSM, pMI, RT_UOFFSETOF(CRMuralInfo, CreateInfo));
    938938    CRASSERT(rc == VINF_SUCCESS);
    939939
     
    13871387    } Data;
    13881388
    1389     Assert(sizeof (Data) >= RT_OFFSETOF(CRFBData, aElements[4]));
     1389    Assert(sizeof (Data) >= RT_UOFFSETOF(CRFBData, aElements[4]));
    13901390
    13911391    pCtxInfo = cr_server.currentCtxInfo;
     
    19381938        rc = crServerLsrDataGetMem(pReader, &key, sizeof(key));
    19391939        AssertLogRelRCReturn(rc, rc);
    1940         rc = crServerLsrDataGetMem(pReader, &muralInfo, RT_OFFSETOF(CRMuralInfo, CreateInfo));
     1940        rc = crServerLsrDataGetMem(pReader, &muralInfo, RT_UOFFSETOF(CRMuralInfo, CreateInfo));
    19411941        AssertLogRelRCReturn(rc, rc);
    19421942
     
    19521952                CR_SERVER_BUGGY_MURAL_DATA Data;
    19531953                /* need to chak spuWindow, so taking the offset of filed following it*/
    1954                 uint8_t au8[RT_OFFSETOF(CRMuralInfo, screenId)];
     1954                uint8_t au8[RT_UOFFSETOF(CRMuralInfo, screenId)];
    19551955                RTRECT aVisRects[sizeof (CR_SERVER_BUGGY_MURAL_DATA) / sizeof (RTRECT)];
    19561956            } LaBuf;
     
    20912091    } Data;
    20922092
    2093     Assert(sizeof (Data) >= RT_OFFSETOF(CRFBData, aElements[4]));
     2093    Assert(sizeof (Data) >= RT_UOFFSETOF(CRFBData, aElements[4]));
    20942094
    20952095    if (version >= SHCROGL_SSM_VERSION_WITH_SAVED_DEPTH_STENCIL_BUFFER)
     
    21772177        if (Data.data.cElements)
    21782178        {
    2179             CRFBData *pLazyData = crAlloc(RT_OFFSETOF(CRFBData, aElements[Data.data.cElements]));
     2179            CRFBData *pLazyData = crAlloc(RT_UOFFSETOF_DYN(CRFBData, aElements[Data.data.cElements]));
    21802180            if (!RT_SUCCESS(rc))
    21812181            {
     
    21852185            }
    21862186
    2187             crMemcpy(pLazyData, &Data.data, RT_OFFSETOF(CRFBData, aElements[Data.data.cElements]));
     2187            crMemcpy(pLazyData, &Data.data, RT_UOFFSETOF_DYN(CRFBData, aElements[Data.data.cElements]));
    21882188            pBuf->pFrontImg = pLazyData;
    21892189        }
     
    29022902    cParams = cBuffers-1;
    29032903
    2904     if (cbCmd < RT_OFFSETOF(VBOXCMDVBVA_CRCMD_CMD, aBuffers[cBuffers]))
     2904    if (cbCmd < RT_UOFFSETOF_DYN(VBOXCMDVBVA_CRCMD_CMD, aBuffers[cBuffers]))
    29052905    {
    29062906        WARN(("invalid buffer size"));
     
    33253325                    VBOXCMDVBVA_3DCTL_CMD RT_UNTRUSTED_VOLATILE_GUEST *p3DCmd
    33263326                        = (VBOXCMDVBVA_3DCTL_CMD RT_UNTRUSTED_VOLATILE_GUEST *)pbCmd;
    3327                     return crVBoxCrCmdCmd(NULL, &p3DCmd->Cmd, cbCmd - RT_OFFSETOF(VBOXCMDVBVA_3DCTL_CMD, Cmd));
     3327                    return crVBoxCrCmdCmd(NULL, &p3DCmd->Cmd, cbCmd - RT_UOFFSETOF(VBOXCMDVBVA_3DCTL_CMD, Cmd));
    33283328                }
    33293329
     
    35433543                    = (VBOXCMDVBVA_CRCMD const RT_UNTRUSTED_VOLATILE_GUEST *)pCmd;
    35443544                VBOXCMDVBVA_CRCMD_CMD const RT_UNTRUSTED_VOLATILE_GUEST *pCrCmd = &pCrCmdDr->Cmd;
    3545                 int rc = crVBoxServerCmdVbvaCrCmdProcess(pCrCmd, cbCmd - RT_OFFSETOF(VBOXCMDVBVA_CRCMD, Cmd));
     3545                int rc = crVBoxServerCmdVbvaCrCmdProcess(pCrCmd, cbCmd - RT_UOFFSETOF(VBOXCMDVBVA_CRCMD, Cmd));
    35463546                ASSERT_GUEST_LOGREL_RC_RETURN(rc, -1);
    35473547                return 0;
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