OLD | NEW |
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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 // state) and eventually gets initialized to the specified value. Note | 159 // state) and eventually gets initialized to the specified value. Note |
160 // that this code runs for a while before the flags are initialized. | 160 // that this code runs for a while before the flags are initialized. |
161 // That means that even if this flag is set to true, some (initial) | 161 // That means that even if this flag is set to true, some (initial) |
162 // memory will be allocated with sbrk before the flag takes effect. | 162 // memory will be allocated with sbrk before the flag takes effect. |
163 if (FLAGS_malloc_skip_sbrk) { | 163 if (FLAGS_malloc_skip_sbrk) { |
164 return NULL; | 164 return NULL; |
165 } | 165 } |
166 | 166 |
167 // sbrk will release memory if passed a negative number, so we do | 167 // sbrk will release memory if passed a negative number, so we do |
168 // a strict check here | 168 // a strict check here |
169 if (static_cast<ptrdiff_t>(size + alignment) < 0) return NULL; | 169 if (static_cast<std::ptrdiff_t>(size + alignment) < 0) return NULL; |
170 | 170 |
171 // This doesn't overflow because TCMalloc_SystemAlloc has already | 171 // This doesn't overflow because TCMalloc_SystemAlloc has already |
172 // tested for overflow at the alignment boundary. | 172 // tested for overflow at the alignment boundary. |
173 size = ((size + alignment - 1) / alignment) * alignment; | 173 size = ((size + alignment - 1) / alignment) * alignment; |
174 | 174 |
175 // "actual_size" indicates that the bytes from the returned pointer | 175 // "actual_size" indicates that the bytes from the returned pointer |
176 // p up to and including (p + actual_size - 1) have been allocated. | 176 // p up to and including (p + actual_size - 1) have been allocated. |
177 if (actual_size) { | 177 if (actual_size) { |
178 *actual_size = size; | 178 *actual_size = size; |
179 } | 179 } |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 | 501 |
502 void DumpSystemAllocatorStats(TCMalloc_Printer* printer) { | 502 void DumpSystemAllocatorStats(TCMalloc_Printer* printer) { |
503 for (int j = 0; j < kMaxAllocators; j++) { | 503 for (int j = 0; j < kMaxAllocators; j++) { |
504 SysAllocator *a = allocators[j]; | 504 SysAllocator *a = allocators[j]; |
505 if (a == NULL) continue; | 505 if (a == NULL) continue; |
506 if (a->usable_) { | 506 if (a->usable_) { |
507 a->DumpStats(printer); | 507 a->DumpStats(printer); |
508 } | 508 } |
509 } | 509 } |
510 } | 510 } |
OLD | NEW |