Changeset 101098 in vbox
- Timestamp:
- Sep 12, 2023 11:31:00 PM (19 months ago)
- svn:sync-xref-src-repo-rev:
- 159067
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Debugger/VBoxDbgStatsQt.cpp
r101097 r101098 636 636 static char *formatNumber(char *psz, uint64_t u64) 637 637 { 638 static const char s_szDigits[] = "0123456789"; 639 psz += 63; 640 *psz-- = '\0'; 641 unsigned cDigits = 0; 642 for (;;) 643 { 644 const unsigned iDigit = u64 % 10; 645 u64 /= 10; 646 *psz = s_szDigits[iDigit]; 647 if (!u64) 648 break; 649 psz--; 650 if (!(++cDigits % 3)) 651 *psz-- = ','; 638 if (!u64) 639 { 640 psz[0] = '0'; 641 psz[1] = '\0'; 642 } 643 else 644 { 645 static const char s_szDigits[] = "0123456789"; 646 psz += 63; 647 *psz-- = '\0'; 648 unsigned cDigits = 0; 649 for (;;) 650 { 651 const unsigned iDigit = u64 % 10; 652 u64 /= 10; 653 *psz = s_szDigits[iDigit]; 654 if (!u64) 655 break; 656 psz--; 657 if (!(++cDigits % 3)) 658 *psz-- = ','; 659 } 652 660 } 653 661 return psz; … … 659 667 * (18 446 744 073 709 551 615) 660 668 */ 661 static char *formatNumberSigned(char *psz, int64_t i64, bool fPositivePlus = false)669 static char *formatNumberSigned(char *psz, int64_t i64, bool fPositivePlus) 662 670 { 663 671 static const char s_szDigits[] = "0123456789"; … … 2261 2269 case STAMTYPE_PROFILE: 2262 2270 case STAMTYPE_PROFILE_ADV: 2263 if (!pNode->Data.Profile.cPeriods)2264 return "0";2265 2271 return formatNumber(sz, pNode->Data.Profile.cPeriods); 2266 2272 … … 2334 2340 case STAMTYPE_PROFILE: 2335 2341 case STAMTYPE_PROFILE_ADV: 2336 if ( !pNode->Data.Profile.cPeriods)2337 return "0";2338 return formatNumber(sz, pNode->Data.Profile.cTicksMin);2342 if (pNode->Data.Profile.cPeriods) 2343 return formatNumber(sz, pNode->Data.Profile.cTicksMin); 2344 return "0"; /* cTicksMin is set to UINT64_MAX */ 2339 2345 default: 2340 2346 return ""; … … 2352 2358 case STAMTYPE_PROFILE: 2353 2359 case STAMTYPE_PROFILE_ADV: 2354 if ( !pNode->Data.Profile.cPeriods)2355 return "0";2356 return formatNumber(sz, pNode->Data.Profile.cTicks / pNode->Data.Profile.cPeriods);2360 if (pNode->Data.Profile.cPeriods) 2361 return formatNumber(sz, pNode->Data.Profile.cTicks / pNode->Data.Profile.cPeriods); 2362 return "0"; 2357 2363 default: 2358 2364 return ""; … … 2370 2376 case STAMTYPE_PROFILE: 2371 2377 case STAMTYPE_PROFILE_ADV: 2372 if (!pNode->Data.Profile.cPeriods)2373 return "0";2374 2378 return formatNumber(sz, pNode->Data.Profile.cTicksMax); 2375 2379 default: … … 2388 2392 case STAMTYPE_PROFILE: 2389 2393 case STAMTYPE_PROFILE_ADV: 2390 if (!pNode->Data.Profile.cPeriods)2391 return "0";2392 2394 return formatNumber(sz, pNode->Data.Profile.cTicks); 2393 2395 default: … … 2400 2402 VBoxDbgStatsModel::strDeltaValue(PCDBGGUISTATSNODE pNode) 2401 2403 { 2402 char sz[128];2403 2404 2404 switch (pNode->enmType) 2405 2405 { 2406 2406 case STAMTYPE_PROFILE: 2407 2407 case STAMTYPE_PROFILE_ADV: 2408 if (!pNode->Data.Profile.cPeriods)2409 return "0";2410 RT_FALL_THRU();2411 2408 case STAMTYPE_COUNTER: 2412 2409 case STAMTYPE_RATIO_U32: … … 2431 2428 case STAMTYPE_BOOL_RESET: 2432 2429 if (pNode->i64Delta) 2430 { 2431 char sz[128]; 2433 2432 return formatNumberSigned(sz, pNode->i64Delta, true /*fPositivePlus*/); 2433 } 2434 2434 return "0"; 2435 default: 2436 return ""; 2437 } 2435 case STAMTYPE_END: 2436 AssertFailed(); RT_FALL_THRU(); 2437 case STAMTYPE_CALLBACK: 2438 case STAMTYPE_INVALID: 2439 break; 2440 } 2441 return ""; 2438 2442 } 2439 2443
Note:
See TracChangeset
for help on using the changeset viewer.