VirtualBox

Changeset 102184 in vbox


Ignore:
Timestamp:
Nov 21, 2023 10:08:22 AM (12 months ago)
Author:
vboxsync
Message:

libs/xpcom: Convert some xpti logging to use IPRT instead of NSPR, bugref:10545

Location:
trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp

    r102174 r102184  
    137137    AssertRC(vrc); RT_NOREF(vrc);
    138138
    139     const char* statsFilename = RTEnvGet("MOZILLA_XPTI_STATS");
    140     if(statsFilename)
    141     {
    142         mStatsLogFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);         
    143         if(mStatsLogFile &&
    144            NS_SUCCEEDED(mStatsLogFile->InitWithNativePath(nsDependentCString(statsFilename))))
    145         {
    146             printf("* Logging xptinfo stats to: %s\n", statsFilename);
    147         }
    148         else
    149         {
    150             printf("* Failed to create xptinfo stats file: %s\n", statsFilename);
    151             mStatsLogFile = nsnull;
    152         }
    153     }
    154 
    155     const char* autoRegFilename = RTEnvGet("MOZILLA_XPTI_REGLOG");
    156     if(autoRegFilename)
    157     {
    158         mAutoRegLogFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);         
    159         if(mAutoRegLogFile &&
    160            NS_SUCCEEDED(mAutoRegLogFile->InitWithNativePath(nsDependentCString(autoRegFilename))))
    161         {
    162             printf("* Logging xptinfo autoreg to: %s\n", autoRegFilename);
    163         }
    164         else
    165         {
    166             printf("* Failed to create xptinfo autoreg file: %s\n", autoRegFilename);
    167             mAutoRegLogFile = nsnull;
    168         }
    169     }
     139    mStatsLogFile = RTEnvGet("MOZILLA_XPTI_STATS");
     140    if (mStatsLogFile)
     141        printf("* Logging xptinfo stats to: %s\n", mStatsLogFile);
     142
     143    mAutoRegLogFile = RTEnvGet("MOZILLA_XPTI_REGLOG");
     144    if (mAutoRegLogFile)
     145        printf("* Logging xptinfo autoreg to: %s\n", mAutoRegLogFile);
    170146}
    171147
     
    16241600        return;
    16251601
    1626     PRFileDesc* fd = gInterfaceInfoManager->GetOpenLogFile();
     1602    PRTSTREAM fd = gInterfaceInfoManager->GetOpenLogFile();
    16271603    if(fd)
    16281604    {
    16291605        va_list ap;
    16301606        va_start(ap, fmt);
    1631         PR_vfprintf(fd, fmt, ap);
     1607        RTStrmPrintfV(fd, fmt, ap);
    16321608        va_end(ap);
    16331609    }
     
    16441620    {
    16451621        xptiWorkingSet*  aWorkingSet = mgr->GetWorkingSet();
    1646         PRFileDesc* fd = mgr->GetOpenLogFile();
     1622        PRTSTREAM fd = mgr->GetOpenLogFile();
    16471623
    16481624        const xptiTypelib& typelib = entry->GetTypelibRecord();
     
    16541630            const char* zipItemName =
    16551631                aWorkingSet->GetZipItemAt(typelib.GetZipItemIndex()).GetName();
    1656             PR_fprintf(fd, "xpti used interface: %s from %s::%s\n",
    1657                        entry->GetTheName(), filename, zipItemName);
     1632            RTStrmPrintf(fd, "xpti used interface: %s from %s::%s\n",
     1633                         entry->GetTheName(), filename, zipItemName);
    16581634        }   
    16591635        else
    16601636        {
    1661             PR_fprintf(fd, "xpti used interface: %s from %s\n",
    1662                        entry->GetTheName(), filename);
     1637            RTStrmPrintf(fd, "xpti used interface: %s from %s\n",
     1638                         entry->GetTheName(), filename);
    16631639        }
    16641640    }
     
    16741650    xptiAutoLog autoLog(this, mStatsLogFile, PR_FALSE);
    16751651
    1676     PRFileDesc* fd = GetOpenLogFile();
     1652    PRTSTREAM fd = GetOpenLogFile();
    16771653    if(!fd)
    16781654        return;
     
    16861662        xptiFile& f = mWorkingSet.GetFileAt(i);
    16871663        if(f.GetGuts())
    1688             PR_fprintf(fd, "xpti used file: %s\n", f.GetName());
    1689     }
    1690 
    1691     PR_fprintf(fd, "\n");
     1664            RTStrmPrintf(fd, "xpti used file: %s\n", f.GetName());
     1665    }
     1666
     1667    RTStrmPrintf(fd, "\n");
    16921668
    16931669    // Show names of xptfiles loaded from zips from which at least
     
    16991675        xptiZipItem& zi = mWorkingSet.GetZipItemAt(i);
    17001676        if(zi.GetGuts())                           
    1701             PR_fprintf(fd, "xpti used file from zip: %s\n", zi.GetName());
    1702     }
    1703 
    1704     PR_fprintf(fd, "\n");
     1677            RTStrmPrintf(fd, "xpti used file from zip: %s\n", zi.GetName());
     1678    }
     1679
     1680    RTStrmPrintf(fd, "\n");
    17051681
    17061682    // Show name of each interface that was fully resolved and the name
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiMisc.cpp

    r102177 r102184  
    4040/* Implementation of misc. xpti stuff. */
    4141
     42#include <iprt/file.h>
    4243#include <iprt/time.h>
    4344
     
    7778
    7879xptiAutoLog::xptiAutoLog(xptiInterfaceInfoManager* mgr,
    79                          nsILocalFile* logfile, PRBool append)
     80                         const char *logfile, PRBool append)
    8081    : mMgr(nsnull), mOldFileDesc(nsnull)
    8182{
     
    8485    if(mgr && logfile)
    8586    {
    86         PRFileDesc* fd;
    87         if(NS_SUCCEEDED(logfile->
    88                     OpenNSPRFileDesc(PR_WRONLY | PR_CREATE_FILE | PR_APPEND |
    89                                              (append ? 0 : PR_TRUNCATE),
    90                                              0600, &fd)) && fd)
     87        RTFILE hFile      = NIL_RTFILE;
     88        PRTSTREAM pStream = NULL;
     89        int vrc = RTFileOpen(&hFile, logfile,
     90                             RTFILE_O_OPEN_CREATE | RTFILE_O_WRITE | RTFILE_O_APPEND | RTFILE_O_DENY_NONE
     91                             | (append ? 0 : RTFILE_O_TRUNCATE)
     92                             | (0600 << RTFILE_O_CREATE_MODE_SHIFT));
     93        if (RT_SUCCESS(vrc))
     94            vrc = RTStrmOpenFileHandle(hFile, "at", 0 /*fFlags*/, &pStream);
     95
     96        if (RT_SUCCESS(vrc))
    9197        {
    9298#ifdef DEBUG
    93             m_DEBUG_FileDesc = fd;
     99            m_DEBUG_FileDesc = pStream;
    94100#endif
    95101            mMgr = mgr;
    96             mOldFileDesc = mMgr->SetOpenLogFile(fd);
    97             if(append)
    98                 PR_Seek(fd, 0, PR_SEEK_END);
    99             WriteTimestamp(fd, "++++ start logging ");
     102            mOldFileDesc = mMgr->SetOpenLogFile(pStream);
     103            if (append)
     104                RTStrmSeek(pStream, 0, RTFILE_SEEK_END);
     105            WriteTimestamp(pStream, "++++ start logging ");
    100106
    101107        }
     
    103109        {
    104110#ifdef DEBUG
    105         printf("xpti failed to open log file for writing\n");
     111            printf("xpti failed to open log file for writing\n");
    106112#endif
     113            if (hFile != NIL_RTFILE)
     114                RTFileClose(hFile);
     115            hFile = NIL_RTFILE;
    107116        }
    108117    }
     
    115124    if(mMgr)
    116125    {
    117         PRFileDesc* fd = mMgr->SetOpenLogFile(mOldFileDesc);
     126        PRTSTREAM fd = mMgr->SetOpenLogFile(mOldFileDesc);
    118127        NS_ASSERTION(fd == m_DEBUG_FileDesc, "bad unravel");
    119128        if(fd)
    120129        {
    121130            WriteTimestamp(fd, "---- end logging   ");
    122             PR_Close(fd);
     131            RTStrmClose(fd);
    123132        }
    124133    }
    125134}
    126135
    127 void xptiAutoLog::WriteTimestamp(PRFileDesc* fd, const char* msg)
     136void xptiAutoLog::WriteTimestamp(PRTSTREAM pStream, const char* msg)
    128137{
    129138    RTTIMESPEC TimeSpec;
     
    135144    char time[128];
    136145    RTTimeToString(&Time, time, sizeof(time));
    137     PR_fprintf(fd, "\n%s %s\n\n", msg, time);
     146    RTStrmPrintf(pStream, "\n%s %s\n\n", msg, time);
    138147}
    139148
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiprivate.h

    r101963 r102184  
    4343#define xptiprivate_h___
    4444
     45#include <iprt/stream.h>
     46
    4547#include "nscore.h"
    4648#include "nsISupports.h"
     
    843845    xptiAutoLog();  // not implemented
    844846    xptiAutoLog(xptiInterfaceInfoManager* mgr,
    845                 nsILocalFile* logfile, PRBool append);
     847                const char *logfile, PRBool append);
    846848    ~xptiAutoLog();
    847849private:
    848     void WriteTimestamp(PRFileDesc* fd, const char* msg);
     850    void WriteTimestamp(PRTSTREAM pStream, const char* msg);
    849851
    850852    xptiInterfaceInfoManager* mMgr;
    851     PRFileDesc* mOldFileDesc;
     853    PRTSTREAM mOldFileDesc;
    852854#ifdef DEBUG
    853     PRFileDesc* m_DEBUG_FileDesc;
     855    PRTSTREAM m_DEBUG_FileDesc;
    854856#endif
    855857};
     
    876878
    877879    xptiWorkingSet*  GetWorkingSet() {return &mWorkingSet;}
    878     PRFileDesc*      GetOpenLogFile() {return mOpenLogFile;}
    879     PRFileDesc*      SetOpenLogFile(PRFileDesc* fd)
    880         {PRFileDesc* temp = mOpenLogFile; mOpenLogFile = fd; return temp;}
     880    PRTSTREAM        GetOpenLogFile() {return mOpenLogFile;}
     881    PRTSTREAM        SetOpenLogFile(PRTSTREAM pStream)
     882        {PRTSTREAM temp = mOpenLogFile; mOpenLogFile = pStream; return temp;}
    881883
    882884    PRBool LoadFile(const xptiTypelib& aTypelibRecord,
     
    958960private:
    959961    xptiWorkingSet               mWorkingSet;
    960     nsCOMPtr<nsILocalFile>       mStatsLogFile;
    961     nsCOMPtr<nsILocalFile>       mAutoRegLogFile;
    962     PRFileDesc*                  mOpenLogFile;
     962    const char                   *mStatsLogFile;
     963    const char                   *mAutoRegLogFile;
     964    PRTSTREAM                    mOpenLogFile;
    963965    RTSEMFASTMUTEX               mResolveLock;
    964966    RTSEMFASTMUTEX               mAutoRegLock;
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