VirtualBox

Ignore:
Timestamp:
Dec 12, 2012 8:31:52 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
82633
Message:

VBoxService/VBoxServicePropCache.cpp: Assertions, logging.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp

    r36249 r44098  
    3939PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheFindInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, uint32_t uFlags)
    4040{
    41     AssertPtr(pCache);
    42     AssertPtr(pszName);
     41    AssertPtrReturn(pCache, NULL);
     42    AssertPtrReturn(pszName, NULL);
     43
    4344    /** @todo This is a O(n) lookup, maybe improve this later to O(1) using a
    4445     *        map.
     
    6667PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheInsertEntryInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName)
    6768{
    68     AssertPtr(pszName);
     69    AssertPtrReturn(pCache, NULL);
     70    AssertPtrReturn(pszName, NULL);
     71
    6972    PVBOXSERVICEVEPROPCACHEENTRY pNode = (PVBOXSERVICEVEPROPCACHEENTRY)RTMemAlloc(sizeof(VBOXSERVICEVEPROPCACHEENTRY));
    7073    if (pNode)
    7174    {
    7275        pNode->pszName = RTStrDup(pszName);
     76        if (!pNode->pszName)
     77        {
     78            RTMemFree(pNode);
     79            return VERR_NO_MEMORY;
     80        }
    7381        pNode->pszValue = NULL;
    7482        pNode->fFlags = 0;
     
    8997int vboxServicePropCacheWritePropF(uint32_t u32ClientId, const char *pszName, uint32_t fFlags, const char *pszValueFormat, ...)
    9098{
    91     AssertPtr(pszName);
     99    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
     100
    92101    int rc;
    93102    if (pszValueFormat != NULL)
     
    142151int VBoxServicePropCacheCreate(PVBOXSERVICEVEPROPCACHE pCache, uint32_t uClientId)
    143152{
    144     AssertPtr(pCache);
     153    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
    145154    /** @todo Prevent init the cache twice!
    146155     *  r=bird: Use a magic. */
     
    165174                                    const char *pszName, uint32_t fFlags, const char *pszValueReset)
    166175{
    167     AssertPtr(pCache);
    168     AssertPtr(pszName);
     176    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     177    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
    169178    PVBOXSERVICEVEPROPCACHEENTRY pNode = vboxServicePropCacheFindInternal(pCache, pszName, 0);
    170179    if (pNode == NULL)
     
    183192                    RTStrFree(pNode->pszValueReset);
    184193                pNode->pszValueReset = RTStrDup(pszValueReset);
     194                AssertPtr(pNode->pszValueReset);
    185195            }
    186196            rc = RTCritSectLeave(&pCache->CritSect);
     
    206216int VBoxServicePropCacheUpdate(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, const char *pszValueFormat, ...)
    207217{
    208     AssertPtr(pCache);
     218    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
    209219    Assert(pCache->uClientID);
    210     AssertPtr(pszName);
     220    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
    211221
    212222    /*
     
    251261                /* Write the update. */
    252262                rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName, pNode->fFlags, pszValue);
     263                VBoxServiceVerbose(4, "PropCache %p: Written \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n",
     264                                   pCache, pNode->pszName, pszValue, pNode->fFlags, rc);
    253265                RTStrFree(pNode->pszValue);
    254266                pNode->pszValue = RTStrDup(pszValue);
     267                if (!pNode->pszValue)
     268                    rc = VERR_NO_MEMORY;
    255269            }
    256270            else
     
    267281                rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName,
    268282                                                    0, /* Flags */ NULL /* Value */);
     283                VBoxServiceVerbose(4, "PropCache %p: Deleted \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n",
     284                                   pCache, pNode->pszName, pNode->pszValue, pNode->fFlags, rc);
    269285            }
    270286            else
     
    296312int VBoxServicePropCacheUpdateByPath(PVBOXSERVICEVEPROPCACHE pCache, const char *pszValue, uint32_t fFlags, const char *pszPathFormat, ...)
    297313{
    298     AssertPtr(pCache);
    299     AssertPtr(pszPathFormat);
     314    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     315    AssertPtrReturn(pszPathFormat, VERR_INVALID_POINTER);
     316
    300317    int rc = VERR_NOT_FOUND;
    301318    PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL;
     
    342359int VBoxServicePropCacheFlush(PVBOXSERVICEVEPROPCACHE pCache)
    343360{
    344     AssertPtr(pCache);
     361    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     362
    345363    int rc = VINF_SUCCESS;
    346364    PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL;
     
    367385void VBoxServicePropCacheDestroy(PVBOXSERVICEVEPROPCACHE pCache)
    368386{
    369     AssertPtr(pCache);
     387    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
    370388    Assert(pCache->uClientID);
    371389
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