VirtualBox

Changeset 84057 in vbox for trunk/src/VBox/Additions/WINNT


Ignore:
Timestamp:
Apr 28, 2020 4:33:50 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
137636
Message:

IPRT,++: Apply bldprog-strtab.h and friends to the IPRT status message database (errmsg.cpp) to reduce size. The interface (RTErrMsg*) has been reworked as we no longer have C-strings in the database, but 'compressed' string w/o zero terminators. [build fixes] bugref:9726

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Installer/InstallHelper/VBoxGuestInstallHelper.cpp

    r84054 r84057  
    144144    if (RT_FAILURE(rc))
    145145    {
    146         char szMsg[80];
    147         RTErrQueryDefine(rc, szMsg, sizeof(szMsg), false /*fFailIfUnknown*/);
    148         /** @todo r=bird: Just use RTUtf16Printf here as RTErrQueryDefine drags in
    149          *        the whole IPRT printf machinery anyway. */
     146        static const char s_szPrefix[] = "Error: ";
     147        AssertCompile(NSIS_MAX_STRLEN > sizeof(s_szPrefix) + 32);
    150148#ifdef UNICODE
    151         int rc2 = RTStrToUtf16(szMsg, &pszErrAsString);
    152         if (RT_SUCCESS(rc2))
    153         {
    154 #endif
    155             StringCchPrintf(szErr, sizeof(szErr), _T("Error: %s"), pszErrAsString);
    156 
    157 #ifdef UNICODE
    158             RTUtf16Free(pszErrAsString);
    159         }
     149        char szTmp[80];
     150        memcpy(szTmp, s_szPrefix, sizeof(s_szPrefix));
     151        RTErrQueryDefine(rc, &szTmp[sizeof(s_szPrefix) - 1], sizeof(szTmp) - sizeof(s_szPrefix) - 1, false);
     152
     153        RT_ZERO(szErr);
     154        PRTUTF16 pwszDst = szErr;
     155        RTStrToUtf16Ex(szTmp, RTSTR_MAX, &pwszDst, RT_ELEMENTS(szErr), NULL);
     156#else
     157        memcpy(szErr, s_szPrefix, sizeof(s_szPrefix));
     158        RTErrQueryDefine(rc, &szErr[sizeof(s_szPrefix) - 1], sizeof(szErr) - sizeof(s_szPrefix) - 1, false);
    160159#endif
    161160    }
    162161    else
    163         StringCchPrintf(szErr, sizeof(szErr), _T("0"));
     162    {
     163        szErr[0] = '0';
     164        szErr[1] = '\0';
     165    }
    164166
    165167    pushstring(szErr);
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