| OLD | NEW |
| 1 // Copyright (c) 2005, 2007, Google Inc. | 1 // Copyright (c) 2005, 2007, Google Inc. |
| 2 // All rights reserved. | 2 // All rights reserved. |
| 3 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserv
ed. | 3 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserv
ed. |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 #endif | 404 #endif |
| 405 | 405 |
| 406 #else // FORCE_SYSTEM_MALLOC | 406 #else // FORCE_SYSTEM_MALLOC |
| 407 | 407 |
| 408 #include "Compiler.h" | 408 #include "Compiler.h" |
| 409 #include "TCPackedCache.h" | 409 #include "TCPackedCache.h" |
| 410 #include "TCPageMap.h" | 410 #include "TCPageMap.h" |
| 411 #include "TCSpinLock.h" | 411 #include "TCSpinLock.h" |
| 412 #include "TCSystemAlloc.h" | 412 #include "TCSystemAlloc.h" |
| 413 #include <algorithm> | 413 #include <algorithm> |
| 414 #include <errno.h> |
| 414 #include <pthread.h> | 415 #include <pthread.h> |
| 415 #include <stdarg.h> | 416 #include <stdarg.h> |
| 416 #include <stddef.h> | 417 #include <stddef.h> |
| 417 #include <stdint.h> | 418 #include <stdint.h> |
| 418 #include <stdio.h> | 419 #include <stdio.h> |
| 419 #if HAVE(ERRNO_H) | |
| 420 #include <errno.h> | |
| 421 #endif | |
| 422 #if OS(UNIX) | 420 #if OS(UNIX) |
| 423 #include <unistd.h> | 421 #include <unistd.h> |
| 424 #endif | 422 #endif |
| 425 #if OS(WINDOWS) | 423 #if OS(WINDOWS) |
| 426 #ifndef WIN32_LEAN_AND_MEAN | 424 #ifndef WIN32_LEAN_AND_MEAN |
| 427 #define WIN32_LEAN_AND_MEAN | 425 #define WIN32_LEAN_AND_MEAN |
| 428 #endif | 426 #endif |
| 429 #include <windows.h> | 427 #include <windows.h> |
| 430 #endif | 428 #endif |
| 431 | 429 |
| (...skipping 2523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2955 lock_.Unlock(); | 2953 lock_.Unlock(); |
| 2956 const size_t npages = class_to_pages[size_class_]; | 2954 const size_t npages = class_to_pages[size_class_]; |
| 2957 | 2955 |
| 2958 Span* span; | 2956 Span* span; |
| 2959 { | 2957 { |
| 2960 SpinLockHolder h(&pageheap_lock); | 2958 SpinLockHolder h(&pageheap_lock); |
| 2961 span = pageheap->New(npages); | 2959 span = pageheap->New(npages); |
| 2962 if (span) pageheap->RegisterSizeClass(span, size_class_); | 2960 if (span) pageheap->RegisterSizeClass(span, size_class_); |
| 2963 } | 2961 } |
| 2964 if (span == NULL) { | 2962 if (span == NULL) { |
| 2965 #if HAVE(ERRNO_H) | 2963 #if OS(WINDOWS) |
| 2966 MESSAGE("allocation failed: %d\n", errno); | |
| 2967 #elif OS(WINDOWS) | |
| 2968 MESSAGE("allocation failed: %d\n", ::GetLastError()); | 2964 MESSAGE("allocation failed: %d\n", ::GetLastError()); |
| 2969 #else | 2965 #else |
| 2970 MESSAGE("allocation failed\n"); | 2966 MESSAGE("allocation failed: %d\n", errno); |
| 2971 #endif | 2967 #endif |
| 2972 lock_.Lock(); | 2968 lock_.Lock(); |
| 2973 return; | 2969 return; |
| 2974 } | 2970 } |
| 2975 ASSERT_SPAN_COMMITTED(span); | 2971 ASSERT_SPAN_COMMITTED(span); |
| 2976 ASSERT(span->length == npages); | 2972 ASSERT(span->length == npages); |
| 2977 // Cache sizeclass info eagerly. Locking is not necessary. | 2973 // Cache sizeclass info eagerly. Locking is not necessary. |
| 2978 // (Instead of being eager, we could just replace any stale info | 2974 // (Instead of being eager, we could just replace any stale info |
| 2979 // about this span, but that seems to be no better in practice.) | 2975 // about this span, but that seems to be no better in practice.) |
| 2980 for (size_t i = 0; i < npages; i++) { | 2976 for (size_t i = 0; i < npages; i++) { |
| (...skipping 1179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4160 void FastMallocZone::init() | 4156 void FastMallocZone::init() |
| 4161 { | 4157 { |
| 4162 static FastMallocZone zone(pageheap, &thread_heaps, static_cast<TCMalloc_Cen
tral_FreeListPadded*>(central_cache), &span_allocator, &threadheap_allocator); | 4158 static FastMallocZone zone(pageheap, &thread_heaps, static_cast<TCMalloc_Cen
tral_FreeListPadded*>(central_cache), &span_allocator, &threadheap_allocator); |
| 4163 } | 4159 } |
| 4164 | 4160 |
| 4165 #endif // OS(DARWIN) | 4161 #endif // OS(DARWIN) |
| 4166 | 4162 |
| 4167 } // namespace WTF | 4163 } // namespace WTF |
| 4168 | 4164 |
| 4169 #endif // FORCE_SYSTEM_MALLOC | 4165 #endif // FORCE_SYSTEM_MALLOC |
| OLD | NEW |