Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(720)

Side by Side Diff: Source/wtf/PartitionAlloc.cpp

Issue 48663004: Fix more warnings in wtf (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix more warnings in wtf. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 return ret; 352 return ret;
353 } 353 }
354 if (LIKELY(next->numUnprovisionedSlots)) { 354 if (LIKELY(next->numUnprovisionedSlots)) {
355 bucket->currPage = next; 355 bucket->currPage = next;
356 return partitionPageAllocAndFillFreelist(next); 356 return partitionPageAllocAndFillFreelist(next);
357 } 357 }
358 // Pull this page out of the non-full page list, since it has no free 358 // Pull this page out of the non-full page list, since it has no free
359 // slots. 359 // slots.
360 // This tags the page as full so that free'ing can tell, and move 360 // This tags the page as full so that free'ing can tell, and move
361 // the page back into the non-full page list when appropriate. 361 // the page back into the non-full page list when appropriate.
362 ASSERT(next->numAllocatedSlots == partitionBucketSlots(bucket)); 362 ASSERT(next->numAllocatedSlots == static_cast<int>(partitionBucketSlots( bucket)));
363 next->numAllocatedSlots = -next->numAllocatedSlots; 363 next->numAllocatedSlots = -next->numAllocatedSlots;
364 partitionUnlinkPage(next); 364 partitionUnlinkPage(next);
365 ++bucket->numFullPages; 365 ++bucket->numFullPages;
366 366
367 next = next->next; 367 next = next->next;
368 } 368 }
369 369
370 // After we've considered and rejected every partition page in the list, 370 // After we've considered and rejected every partition page in the list,
371 // we should by definition have a single self-linked page left. We will 371 // we should by definition have a single self-linked page left. We will
372 // replace this single page with the new page we choose. 372 // replace this single page with the new page we choose.
373 ASSERT(page == page->next); 373 ASSERT(page == page->next);
374 ASSERT(page == page->prev); 374 ASSERT(page == page->prev);
375 ASSERT(page == &bucket->root->seedPage || page->numAllocatedSlots == partiti onBucketSlots(bucket)); 375 ASSERT(page == &bucket->root->seedPage || page->numAllocatedSlots == static_ cast<int>(partitionBucketSlots(bucket)));
376 if (LIKELY(page != &bucket->root->seedPage)) { 376 if (LIKELY(page != &bucket->root->seedPage)) {
377 page->numAllocatedSlots = -page->numAllocatedSlots; 377 page->numAllocatedSlots = -page->numAllocatedSlots;
378 ++bucket->numFullPages; 378 ++bucket->numFullPages;
379 } 379 }
380 380
381 // Third, look in our list of freed but reserved pages. 381 // Third, look in our list of freed but reserved pages.
382 PartitionPageHeader* newPage; 382 PartitionPageHeader* newPage;
383 PartitionFreepagelistEntry* pagelist = bucket->freePages; 383 PartitionFreepagelistEntry* pagelist = bucket->freePages;
384 if (LIKELY(pagelist != 0)) { 384 if (LIKELY(pagelist != 0)) {
385 ASSERT(page != &bucket->root->seedPage); 385 ASSERT(page != &bucket->root->seedPage);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 // Ensure that the page is full. That's the only valid case if we 434 // Ensure that the page is full. That's the only valid case if we
435 // arrive here. 435 // arrive here.
436 ASSERT(page->numAllocatedSlots < 0); 436 ASSERT(page->numAllocatedSlots < 0);
437 // Fully used page became partially used. It must be put back on the 437 // Fully used page became partially used. It must be put back on the
438 // non-full page list. Also make it the current page to increase the 438 // non-full page list. Also make it the current page to increase the
439 // chances of it being filled up again. The old current page will be 439 // chances of it being filled up again. The old current page will be
440 // the next page. 440 // the next page.
441 partitionLinkPageBefore(page, bucket->currPage); 441 partitionLinkPageBefore(page, bucket->currPage);
442 bucket->currPage = page; 442 bucket->currPage = page;
443 page->numAllocatedSlots = -page->numAllocatedSlots - 2; 443 page->numAllocatedSlots = -page->numAllocatedSlots - 2;
444 ASSERT(page->numAllocatedSlots == partitionBucketSlots(bucket) - 1); 444 ASSERT(page->numAllocatedSlots == static_cast<int>(partitionBucketSlots( bucket) - 1));
445 --bucket->numFullPages; 445 --bucket->numFullPages;
446 } 446 }
447 } 447 }
448 448
449 void* partitionReallocGeneric(PartitionRoot* root, void* ptr, size_t newSize) 449 void* partitionReallocGeneric(PartitionRoot* root, void* ptr, size_t newSize)
450 { 450 {
451 #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) 451 #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
452 return realloc(ptr, newSize); 452 return realloc(ptr, newSize);
453 #else 453 #else
454 size_t oldIndex; 454 size_t oldIndex;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 printf("total live: %ld bytes\n", totalLive); 536 printf("total live: %ld bytes\n", totalLive);
537 printf("total resident: %ld bytes\n", totalResident); 537 printf("total resident: %ld bytes\n", totalResident);
538 printf("total freeable: %ld bytes\n", totalFreeable); 538 printf("total freeable: %ld bytes\n", totalFreeable);
539 fflush(stdout); 539 fflush(stdout);
540 } 540 }
541 541
542 #endif // !NDEBUG 542 #endif // !NDEBUG
543 543
544 } // namespace WTF 544 } // namespace WTF
545 545
OLDNEW
« no previous file with comments | « Source/wtf/FastMalloc.cpp ('k') | Source/wtf/TCSystemAlloc.cpp » ('j') | Source/wtf/dtoa.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698