VirtualBox

Changeset 22603 in vbox


Ignore:
Timestamp:
Aug 31, 2009 1:00:58 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
51654
Message:

Main/GuestProperties: tentatively fix r51587 and r51594 to use C constructs, not C++ ones, part 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r22601 r22603  
    28392839            AssertFailedReturn(VERR_INVALID_PARAMETER);
    28402840
    2841         char **pacszNames, **pacszValues, **pacszFlags;
     2841        char **papszNames, **papszValues, **papszFlags;
    28422842        char szEmpty[] = "";
    28432843        ULONG64 *pau64Timestamps;
    2844         pacszNames = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
    2845         pacszValues = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
     2844        papszNames = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
     2845        papszValues = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
    28462846        pau64Timestamps = (ULONG64 *)RTMemTmpAllocZ(sizeof(ULONG64) * cAlloc);
    2847         pacszFlags = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
    2848         if (!(pacszNames && pacszValues && pau64Timestamps && pacszFlags))
     2847        papszFlags = (char **)RTMemTmpAllocZ(sizeof(void *) * cAlloc);
     2848        if (papszNames && papszValues && pau64Timestamps && papszFlags)
     2849        {
     2850            for (unsigned i = 0; RT_SUCCESS(rc) && i < cProps; ++i)
     2851            {
     2852                AssertPtrReturn(namesOut[i], VERR_INVALID_PARAMETER);
     2853                rc = RTUtf16ToUtf8(namesOut[i], &papszNames[i]);
     2854                if (RT_FAILURE(rc))
     2855                    break;
     2856                if (valuesOut[i])
     2857                    rc = RTUtf16ToUtf8(valuesOut[i], &papszValues[i]);
     2858                else
     2859                    papszValues[i] = szEmpty;
     2860                if (RT_FAILURE(rc))
     2861                    break;
     2862                pau64Timestamps[i] = timestampsOut[i];
     2863                if (flagsOut[i])
     2864                    rc = RTUtf16ToUtf8(flagsOut[i], &papszFlags[i]);
     2865                else
     2866                    papszFlags[i] = szEmpty;
     2867            }
     2868            if (RT_SUCCESS(rc))
     2869                configSetProperties(pConsole->mVMMDev,
     2870                                    (void *)papszNames,
     2871                                    (void *)papszValues,
     2872                                    (void *)pau64Timestamps,
     2873                                    (void *)papszFlags);
     2874            for (unsigned i = 0; i < cProps; ++i)
     2875            {
     2876                RTStrFree(papszNames[i]);
     2877                if (valuesOut[i])
     2878                    RTStrFree(papszValues[i]);
     2879                if (flagsOut[i])
     2880                    RTStrFree(papszFlags[i]);
     2881            }
     2882        }
     2883        else
    28492884            rc = VERR_NO_MEMORY;
    2850         for (unsigned i = 0; RT_SUCCESS(rc) && i < cProps; ++i)
    2851         {
    2852             AssertPtrReturn(namesOut[i], VERR_INVALID_PARAMETER);
    2853             rc = RTUtf16ToUtf8(namesOut[i], &pacszNames[i]);
    2854             if (RT_FAILURE(rc))
    2855                 break;
    2856             if (valuesOut[i])
    2857                 rc = RTUtf16ToUtf8(valuesOut[i], &pacszValues[i]);
    2858             else
    2859                 pacszValues[i] = szEmpty;
    2860             if (RT_FAILURE(rc))
    2861                 break;
    2862             pau64Timestamps[i] = timestampsOut[i];
    2863             if (flagsOut[i])
    2864                 rc = RTUtf16ToUtf8(flagsOut[i], &pacszFlags[i]);
    2865             else
    2866                 pacszFlags[i] = szEmpty;
    2867         }
    2868         if (RT_SUCCESS(rc))
    2869             configSetProperties(pConsole->mVMMDev, (void *)pacszNames,
    2870                                 (void *)pacszValues, (void *)pau64Timestamps,
    2871                                 (void *)pacszFlags);
    2872         if (pacszNames && pacszValues && pau64Timestamps && pacszFlags)
    2873             for (unsigned i = 0; i < cProps; ++i)
    2874             {
    2875                 RTStrFree(pacszNames[i]);
    2876                 if (valuesOut[i])
    2877                     RTStrFree(pacszValues[i]);
    2878                 if (flagsOut[i])
    2879                     RTStrFree(pacszFlags[i]);
    2880             }
    2881         RTMemTmpFree(pacszNames);
    2882         RTMemTmpFree(pacszValues);
     2885        RTMemTmpFree(papszNames);
     2886        RTMemTmpFree(papszValues);
    28832887        RTMemTmpFree(pau64Timestamps);
    2884         RTMemTmpFree(pacszFlags);
     2888        RTMemTmpFree(papszFlags);
     2889        AssertRCReturn(rc, rc);
    28852890
    28862891        /* Set the VBox version string as a guest property */
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