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

Side by Side Diff: third_party/tcmalloc/chromium/src/malloc_hook.cc

Issue 9310021: [NOT TO COMMIT!] Merge Chromium-specific changes in tcmalloc thru. the original gperftools r136. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed some build inhibitor. Created 8 years, 10 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2005, Google Inc. 1 // Copyright (c) 2005, Google Inc.
2 // All rights reserved. 2 // 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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 void InitialPreMMapHook(const void* start, 120 void InitialPreMMapHook(const void* start,
121 size_t size, 121 size_t size,
122 int protection, 122 int protection,
123 int flags, 123 int flags,
124 int fd, 124 int fd,
125 off_t offset) { 125 off_t offset) {
126 perftools_pthread_once(&once, &RemoveInitialHooksAndCallInitializers); 126 perftools_pthread_once(&once, &RemoveInitialHooksAndCallInitializers);
127 MallocHook::InvokePreMmapHook(start, size, protection, flags, fd, offset); 127 MallocHook::InvokePreMmapHook(start, size, protection, flags, fd, offset);
128 } 128 }
129 129
130 void InitialPreSbrkHook(ptrdiff_t increment) { 130 void InitialPreSbrkHook(std::ptrdiff_t increment) {
131 perftools_pthread_once(&once, &RemoveInitialHooksAndCallInitializers); 131 perftools_pthread_once(&once, &RemoveInitialHooksAndCallInitializers);
132 MallocHook::InvokePreSbrkHook(increment); 132 MallocHook::InvokePreSbrkHook(increment);
133 } 133 }
134 134
135 // This function is called at most once by one of the above initial malloc 135 // This function is called at most once by one of the above initial malloc
136 // hooks. It removes all initial hooks and initializes all other clients that 136 // hooks. It removes all initial hooks and initializes all other clients that
137 // want to get control at the very first memory allocation. The initializers 137 // want to get control at the very first memory allocation. The initializers
138 // may assume that the initial malloc hooks have been removed. The initializers 138 // may assume that the initial malloc hooks have been removed. The initializers
139 // may set up malloc hooks and allocate memory. 139 // may set up malloc hooks and allocate memory.
140 void RemoveInitialHooksAndCallInitializers() { 140 void RemoveInitialHooksAndCallInitializers() {
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 void MallocHook::InvokeMremapHookSlow(const void* result, 574 void MallocHook::InvokeMremapHookSlow(const void* result,
575 const void* old_addr, 575 const void* old_addr,
576 size_t old_size, 576 size_t old_size,
577 size_t new_size, 577 size_t new_size,
578 int flags, 578 int flags,
579 const void* new_addr) { 579 const void* new_addr) {
580 INVOKE_HOOKS(MremapHook, mremap_hooks_, (result, old_addr, old_size, new_size, 580 INVOKE_HOOKS(MremapHook, mremap_hooks_, (result, old_addr, old_size, new_size,
581 flags, new_addr)); 581 flags, new_addr));
582 } 582 }
583 583
584 void MallocHook::InvokePreSbrkHookSlow(ptrdiff_t increment) { 584 void MallocHook::InvokePreSbrkHookSlow(std::ptrdiff_t increment) {
585 INVOKE_HOOKS(PreSbrkHook, presbrk_hooks_, (increment)); 585 INVOKE_HOOKS(PreSbrkHook, presbrk_hooks_, (increment));
586 } 586 }
587 587
588 void MallocHook::InvokeSbrkHookSlow(const void* result, ptrdiff_t increment) { 588 void MallocHook::InvokeSbrkHookSlow(const void* result, std::ptrdiff_t increment ) {
589 INVOKE_HOOKS(SbrkHook, sbrk_hooks_, (result, increment)); 589 INVOKE_HOOKS(SbrkHook, sbrk_hooks_, (result, increment));
590 } 590 }
591 591
592 #undef INVOKE_HOOKS 592 #undef INVOKE_HOOKS
593 593
594 DEFINE_ATTRIBUTE_SECTION_VARS(google_malloc); 594 DEFINE_ATTRIBUTE_SECTION_VARS(google_malloc);
595 DECLARE_ATTRIBUTE_SECTION_VARS(google_malloc); 595 DECLARE_ATTRIBUTE_SECTION_VARS(google_malloc);
596 // actual functions are in debugallocation.cc or tcmalloc.cc 596 // actual functions are in debugallocation.cc or tcmalloc.cc
597 DEFINE_ATTRIBUTE_SECTION_VARS(malloc_hook); 597 DEFINE_ATTRIBUTE_SECTION_VARS(malloc_hook);
598 DECLARE_ATTRIBUTE_SECTION_VARS(malloc_hook); 598 DECLARE_ATTRIBUTE_SECTION_VARS(malloc_hook);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 714
715 /*static*/int MallocHook::UnhookedMUnmap(void *start, size_t length) { 715 /*static*/int MallocHook::UnhookedMUnmap(void *start, size_t length) {
716 int result; 716 int result;
717 if (!MallocHook::InvokeMunmapReplacement(start, length, &result)) { 717 if (!MallocHook::InvokeMunmapReplacement(start, length, &result)) {
718 result = munmap(start, length); 718 result = munmap(start, length);
719 } 719 }
720 return result; 720 return result;
721 } 721 }
722 722
723 #endif 723 #endif
OLDNEW
« no previous file with comments | « third_party/tcmalloc/chromium/src/heap-profiler.cc ('k') | third_party/tcmalloc/chromium/src/malloc_hook-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698