VirtualBox

Changeset 2617 in kBuild for trunk/src


Ignore:
Timestamp:
Aug 2, 2012 2:03:50 AM (13 years ago)
Author:
bird
Message:

use _O_TEXT when possible.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kObjCache/kObjCache.c

    r2616 r2617  
    129129static char g_szLine[KOBJCACHE_MAX_LINE_LEN + 16];
    130130
     131/** How many times we've moved memory around. */
     132static size_t g_cMemMoves = 0;
     133/** How much memory we've moved. */
     134static size_t g_cbMemMoved = 0;
     135
    131136
    132137/*******************************************************************************
     
    12051210    assert(pCppRd->offRead >= offStart);
    12061211
     1212    g_cMemMoves++;
     1213    g_cbMemMoved += cbToMove + 1;
    12071214    memmove(pszStart, pszStart + cbRemove, cbToMove + 1);
    12081215
     
    12211228    if (offDelta)
    12221229    {
    1223         size_t cbLeft = pCppRd->offRead - offStart - cchReplaced;
    1224         assert(cbLeft <= pCppRd->offRead);
     1230        size_t cbToMove = pCppRd->offRead - offStart - cchReplaced;
     1231        assert(cbToMove <= pCppRd->offRead);
    12251232
    12261233        if (cchReplacement > cchReplaced)
     
    12281235                kOCCppRdGrowBuffer(pCppRd);
    12291236
     1237        g_cMemMoves++;
     1238        g_cbMemMoved += cbToMove + 1;
    12301239        memmove(pCppRd->pszBuf + offStart + cchReplacement,
    12311240                pCppRd->pszBuf + offStart + cchReplaced,
    1232                 cbLeft + 1);
     1241                cbToMove + 1);
    12331242
    12341243        pCppRd->offRead += offDelta;
     
    12471256
    12481257
     1258static void kOCCppRdOptCommitEx(PKOCCPPRD pCppRd, size_t offCur)
     1259{
     1260    pCppRd->cchOptimized = offCur;
     1261    pCppRd->uOptLineNo = pCppRd->uCurLineNo;
     1262}
     1263
     1264
     1265static void kOCCppRdOptCommit(PKOCCPPRD pCppRd)
     1266{
     1267    pCppRd->cchOptimized = pCppRd->offCur;
     1268    pCppRd->uOptLineNo = pCppRd->uCurLineNo;
     1269}
     1270
     1271
     1272
    12491273static char *kOCCppRdOptGetEol(PKOCCPPRD pCppRd, char *pszCur, size_t cbLeft)
    12501274{
     
    13401364        pszCur += offDelta;
    13411365
    1342         pCppRd->cchOptimized = cchOptimized + cchLineDir;
    1343         pCppRd->uOptLineNo = pCppRd->uCurLineNo;
    1344 
     1366        kOCCppRdOptCommitEx(pCppRd, cchOptimized + cchLineDir);
    13451367        /* pCppRd->offCur is adjusted by the replace call */
    13461368    }
     
    15461568                pCppRd->uCurLineNo++;
    15471569                if (!fEmptyLine)
    1548                 {
    1549                     pCppRd->cchOptimized = pCppRd->offCur;
    1550                     pCppRd->uOptLineNo = pCppRd->uCurLineNo;
    1551                 }
     1570                    kOCCppRdOptCommit(pCppRd);
    15521571                else
    15531572                    pCppRd->cEmptyLines++;
     
    29192938 * @param   pszMsg          The operation message for info/error messages.
    29202939 * @param   pszPipeName     The pipe name if it is supposed to be named. (Windows only.)
    2921  */
    2922 static void kOCEntryCreatePipe(PKOCENTRY pEntry, int *paFDs, const char *pszPipeName, const char *pszMsg)
     2940 * @param   fText           Whether to read text mode or binary mode.
     2941 */
     2942static void kOCEntryCreatePipe(PKOCENTRY pEntry, int *paFDs, const char *pszPipeName, const char *pszMsg, int fText)
    29232943{
    29242944    paFDs[0] = paFDs[1] = -1;
     
    29422962            FatalDie("%s - _open_osfhandle failed: %d\n", pszMsg, strerror(errno));
    29432963    }
    2944     else if (   _pipe(paFDs, 256*1024, _O_NOINHERIT | _O_BINARY) < 0
    2945              && _pipe(paFDs,        0, _O_NOINHERIT | _O_BINARY) < 0)
     2964    else if (   _pipe(paFDs, 256*1024, _O_NOINHERIT | (fText ? _O_BINARY : _O_TEXT)) < 0
     2965             && _pipe(paFDs,        0, _O_NOINHERIT | (fText ? _O_BINARY : _O_TEXT)) < 0)
    29462966#else
    29472967    if (pipe(paFDs) < 0)
     
    29722992    pid_t pid;
    29732993
    2974     kOCEntryCreatePipe(pEntry, fds, NULL, pszMsg);
     2994    kOCEntryCreatePipe(pEntry, fds, NULL, pszMsg, pEntry->fOptimizeCpp);
    29752995    pid = kOCEntrySpawnChild(pEntry, &pEntry->New.cMsCpp, papszArgv, cArgv, -1, fds[1 /* write */], pszMsg);
    29762996
     
    29963016    pid_t pid;
    29973017
    2998     kOCEntryCreatePipe(pEntry, fds, pEntry->pszNmPipeCompile, pszMsg);
     3018    kOCEntryCreatePipe(pEntry, fds, pEntry->pszNmPipeCompile, pszMsg, 0 /*fText*/);
    29993019    pid = kOCEntrySpawnChild(pEntry, &pEntry->New.cMsCompile, papszArgv, cArgv, fds[0 /* read */], -1, pszMsg);
    30003020#ifdef __WIN__
     
    30303050     * The producer.
    30313051     */
    3032     kOCEntryCreatePipe(pEntry, fds, NULL, pszMsg);
     3052    kOCEntryCreatePipe(pEntry, fds, NULL, pszMsg, pEntry->fOptimizeCpp);
    30333053    pidConsumer = kOCEntrySpawnChild(pEntry, &pEntry->New.cMsCpp, papszProdArgv, cProdArgv, -1, fds[1 /* write */], pszMsg);
    30343054    fdIn = fds[0 /* read */];
     
    30373057     * The consumer.
    30383058     */
    3039     kOCEntryCreatePipe(pEntry, fds, pEntry->pszNmPipeCompile, pszMsg);
     3059    kOCEntryCreatePipe(pEntry, fds, pEntry->pszNmPipeCompile, pszMsg, 0 /*fText*/);
    30403060    pidProducer = kOCEntrySpawnChild(pEntry, &pEntry->New.cMsCompile, papszConsArgv, cConsArgv, fds[0 /* read */], -1, pszMsg);
    30413061    fdOut = fds[1 /* write */];
     
    51195139    kObjCacheUnlock(pCache);
    51205140    kObjCacheDestroy(pCache);
     5141    if (fOptimizePreprocessorOutput)
     5142    {
     5143        InfoMsg(1, "g_cbMemMoved=%#x (%d)\n", g_cbMemMoved, g_cbMemMoved);
     5144        InfoMsg(1, "g_cMemMoves=%#x (%d)\n", g_cMemMoves, g_cMemMoves);
     5145    }
     5146
    51215147    return 0;
    51225148}
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