VirtualBox

Changeset 62446 in vbox


Ignore:
Timestamp:
Jul 22, 2016 2:12:06 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
108999
Message:

json.cpp: You won't normally ever use the 'asz' HN prefix. Removed several unused variables and one unnecessary RT_ZERO(128 bytes).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/misc/json.cpp

    r62021 r62446  
    448448    char ch = rtJsonTokenizerGetCh(pTokenizer);
    449449    size_t cchLiteral = 0;
    450     char aszLiteral[6]; /* false + 0 terminator as the lingest possible literal. */
    451     RT_ZERO(aszLiteral);
     450    char szLiteral[6]; /* false + 0 terminator as the lingest possible literal. */
     451    RT_ZERO(szLiteral);
    452452
    453453    pToken->Pos = pTokenizer->Pos;
     
    456456
    457457    while (   RT_C_IS_ALPHA(ch)
    458            && cchLiteral < RT_ELEMENTS(aszLiteral) - 1)
    459     {
    460         aszLiteral[cchLiteral] = ch;
     458           && cchLiteral < RT_ELEMENTS(szLiteral) - 1)
     459    {
     460        szLiteral[cchLiteral] = ch;
    461461        cchLiteral++;
    462462        rtJsonTokenizerSkipCh(pTokenizer);
     
    464464    }
    465465
    466     if (!RTStrNCmp(&aszLiteral[0], "false", RT_ELEMENTS(aszLiteral)))
     466    if (!RTStrNCmp(&szLiteral[0], "false", RT_ELEMENTS(szLiteral)))
    467467        pToken->enmClass = RTJSONTOKENCLASS_FALSE;
    468     else if (!RTStrNCmp(&aszLiteral[0], "true", RT_ELEMENTS(aszLiteral)))
     468    else if (!RTStrNCmp(&szLiteral[0], "true", RT_ELEMENTS(szLiteral)))
    469469        pToken->enmClass = RTJSONTOKENCLASS_TRUE;
    470     else if (!RTStrNCmp(&aszLiteral[0], "null", RT_ELEMENTS(aszLiteral)))
     470    else if (!RTStrNCmp(&szLiteral[0], "null", RT_ELEMENTS(szLiteral)))
    471471        pToken->enmClass = RTJSONTOKENCLASS_NULL;
    472472    else
     
    489489static int rtJsonTokenizerGetNumber(PRTJSONTOKENIZER pTokenizer, PRTJSONTOKEN pToken)
    490490{
    491     unsigned uBase = 10;
    492     char *pszNext = NULL;
    493491    size_t cchNum = 0;
    494     char aszTmp[128]; /* Everything larger is not possible to display in signed 64bit. */
    495     RT_ZERO(aszTmp);
     492    char   szTmp[128]; /* Everything larger is not possible to display in signed 64bit. */
    496493
    497494    pToken->enmClass = RTJSONTOKENCLASS_NUMBER;
     
    499496    char ch = rtJsonTokenizerGetCh(pTokenizer);
    500497    while (   RT_C_IS_DIGIT(ch)
    501            && cchNum < sizeof(aszTmp) - 1)
    502     {
    503         aszTmp[cchNum] = ch;
     498           && cchNum < sizeof(szTmp) - 1)
     499    {
     500        szTmp[cchNum] = ch;
    504501        cchNum++;
    505502        rtJsonTokenizerSkipCh(pTokenizer);
     
    508505
    509506    int rc = VINF_SUCCESS;
    510     if (RT_C_IS_DIGIT(ch) && cchNum == sizeof(aszTmp) - 1)
     507    if (RT_C_IS_DIGIT(ch) && cchNum >= sizeof(szTmp) - 1)
    511508        rc = VERR_NUMBER_TOO_BIG;
    512509    else
    513510    {
    514         rc = RTStrToInt64Ex(&aszTmp[0], NULL, 0, &pToken->Class.Number.i64Num);
     511        szTmp[cchNum] = '\0';
     512        rc = RTStrToInt64Ex(&szTmp[0], NULL, 0, &pToken->Class.Number.i64Num);
    515513        Assert(RT_SUCCESS(rc) || rc == VWRN_NUMBER_TOO_BIG);
    516514        if (rc == VWRN_NUMBER_TOO_BIG)
     
    532530    int rc = VINF_SUCCESS;
    533531    size_t cchStr = 0;
    534     char aszTmp[_4K];
    535     RT_ZERO(aszTmp);
     532    char szTmp[_4K];
     533    RT_ZERO(szTmp);
    536534
    537535    Assert(rtJsonTokenizerGetCh(pTokenizer) == '\"');
     
    544542    while (   ch != '\"'
    545543           && ch != '\0'
    546            && cchStr < sizeof(aszTmp) - 1)
     544           && cchStr < sizeof(szTmp) - 1)
    547545    {
    548546        if (ch == '\\')
     
    554552            {
    555553                case '\"':
    556                     aszTmp[cchStr] = '\"';
     554                    szTmp[cchStr] = '\"';
    557555                    break;
    558556                case '\\':
    559                     aszTmp[cchStr] = '\\';
     557                    szTmp[cchStr] = '\\';
    560558                    break;
    561559                case '/':
    562                     aszTmp[cchStr] = '/';
     560                    szTmp[cchStr] = '/';
    563561                    break;
    564562                case '\b':
    565                     aszTmp[cchStr] = '\b';
     563                    szTmp[cchStr] = '\b';
    566564                    break;
    567565                case '\n':
    568                     aszTmp[cchStr] = '\n';
     566                    szTmp[cchStr] = '\n';
    569567                    break;
    570568                case '\f':
    571                     aszTmp[cchStr] = '\f';
     569                    szTmp[cchStr] = '\f';
    572570                    break;
    573571                case '\r':
    574                     aszTmp[cchStr] = '\r';
     572                    szTmp[cchStr] = '\r';
    575573                    break;
    576574                case '\t':
    577                     aszTmp[cchStr] = '\t';
     575                    szTmp[cchStr] = '\t';
    578576                    break;
    579577                case 'u':
     
    585583        }
    586584        else
    587             aszTmp[cchStr] = ch;
     585            szTmp[cchStr] = ch;
    588586        cchStr++;
    589587        rtJsonTokenizerSkipCh(pTokenizer);
     
    594592        rtJsonTokenizerSkipCh(pTokenizer); /* Skip closing " */
    595593
    596     pToken->Class.String.pszStr = RTStrDupN(&aszTmp[0], cchStr);
     594    pToken->Class.String.pszStr = RTStrDupN(&szTmp[0], cchStr);
    597595    if (pToken->Class.String.pszStr)
    598596        pToken->Pos.iChEnd += cchStr;
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