Changeset 38672 in webkit
- Timestamp:
- Nov 21, 2008 12:09:40 PM (15 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r38669 r38672 1 2008-11-21 Alexey Proskuryakov <ap@webkit.org> 2 3 Reverted fix for bug 22042 (Replace abort() with CRASH()), because it was breaking 4 FOR_EACH_OPCODE_ID macro somehow, making Safari crash. 5 6 * runtime/Collector.cpp: 7 (JSC::Heap::heapAllocate): 8 (JSC::Heap::collect): 9 * wtf/Assertions.h: 10 * wtf/FastMalloc.cpp: 11 (WTF::fastMalloc): 12 (WTF::fastCalloc): 13 (WTF::fastRealloc): 14 (WTF::InitSizeClasses): 15 (WTF::PageHeapAllocator::New): 16 (WTF::TCMallocStats::do_malloc): 17 * wtf/FastMalloc.h: 18 * wtf/TCSpinLock.h: 19 (TCMalloc_SpinLock::Init): 20 (TCMalloc_SpinLock::Finalize): 21 (TCMalloc_SpinLock::Lock): 22 (TCMalloc_SpinLock::Unlock): 23 1 24 2008-11-21 Geoffrey Garen <ggaren@apple.com> 2 25 -
trunk/JavaScriptCore/runtime/Collector.cpp
r38665 r38672 284 284 ASSERT(heapType == PrimaryHeap || heap.extraCost == 0); 285 285 // FIXME: If another global variable access here doesn't hurt performance 286 // too much, we could CRASH() in NDEBUG builds, which could help ensure we286 // too much, we could abort() in NDEBUG builds, which could help ensure we 287 287 // don't spend any time debugging cases where we allocate inside an object's 288 288 // deallocation code. … … 975 975 ASSERT((primaryHeap.operationInProgress == NoOperation) | (numberHeap.operationInProgress == NoOperation)); 976 976 if ((primaryHeap.operationInProgress != NoOperation) | (numberHeap.operationInProgress != NoOperation)) 977 CRASH();977 abort(); 978 978 979 979 JAVASCRIPTCORE_GC_BEGIN(); -
trunk/JavaScriptCore/wtf/Assertions.h
r38666 r38672 51 51 #endif 52 52 53 #include <stdlib.h>54 55 53 #ifdef NDEBUG 56 54 #define ASSERTIONS_DISABLED_DEFAULT 1 … … 123 121 124 122 #ifndef CRASH 125 #ifdef __cplusplus 126 #define CRASH() do { \ 127 *(int *)(uintptr_t)0xbbadbeef = 0; \ 128 ::abort(); \ 129 } while (false) 130 #else 131 #define CRASH() do { \ 132 *(int *)(uintptr_t)0xbbadbeef = 0; \ 133 abort(); \ 134 } while (false) 135 #endif 123 #define CRASH() *(int *)(uintptr_t)0xbbadbeef = 0 136 124 #endif 137 125 -
trunk/JavaScriptCore/wtf/FastMalloc.cpp
r38665 r38672 192 192 void* result = malloc(n); 193 193 if (!result) 194 CRASH();194 abort(); 195 195 return result; 196 196 } … … 207 207 void* result = calloc(n_elements, element_size); 208 208 if (!result) 209 CRASH();209 abort(); 210 210 return result; 211 211 } … … 228 228 void* result = realloc(p, n); 229 229 if (!result) 230 CRASH();230 abort(); 231 231 return result; 232 232 } … … 687 687 if (ClassIndex(0) < 0) { 688 688 MESSAGE("Invalid class index %d for size 0\n", ClassIndex(0)); 689 CRASH();689 abort(); 690 690 } 691 691 if (static_cast<size_t>(ClassIndex(kMaxSize)) >= sizeof(class_array)) { 692 692 MESSAGE("Invalid class index %d for kMaxSize\n", ClassIndex(kMaxSize)); 693 CRASH();693 abort(); 694 694 } 695 695 … … 743 743 MESSAGE("wrong number of size classes: found %" PRIuS " instead of %d\n", 744 744 sc, int(kNumClasses)); 745 CRASH();745 abort(); 746 746 } 747 747 … … 761 761 if (sc == 0) { 762 762 MESSAGE("Bad size class %" PRIuS " for %" PRIuS "\n", sc, size); 763 CRASH();763 abort(); 764 764 } 765 765 if (sc > 1 && size <= class_to_size[sc-1]) { 766 766 MESSAGE("Allocating unnecessarily large class %" PRIuS " for %" PRIuS 767 767 "\n", sc, size); 768 CRASH();768 abort(); 769 769 } 770 770 if (sc >= kNumClasses) { 771 771 MESSAGE("Bad size class %" PRIuS " for %" PRIuS "\n", sc, size); 772 CRASH();772 abort(); 773 773 } 774 774 const size_t s = class_to_size[sc]; 775 775 if (size > s) { 776 776 MESSAGE("Bad size %" PRIuS " for %" PRIuS " (sc = %" PRIuS ")\n", s, size, sc); 777 CRASH();777 abort(); 778 778 } 779 779 if (s == 0) { 780 780 MESSAGE("Bad size %" PRIuS " for %" PRIuS " (sc = %" PRIuS ")\n", s, size, sc); 781 CRASH();781 abort(); 782 782 } 783 783 } … … 862 862 // Need more room 863 863 free_area_ = reinterpret_cast<char*>(MetaDataAlloc(kAllocIncrement)); 864 if (free_area_ == NULL) CRASH();864 if (free_area_ == NULL) abort(); 865 865 free_avail_ = kAllocIncrement; 866 866 } … … 3024 3024 3025 3025 #ifdef WTF_CHANGES 3026 template <bool crashOnFailure>3026 template <bool abortOnFailure> 3027 3027 #endif 3028 3028 static ALWAYS_INLINE void* do_malloc(size_t size) { … … 3057 3057 if (!ret) { 3058 3058 #ifdef WTF_CHANGES 3059 if ( crashOnFailure) // This branch should be optimized out by the compiler.3060 CRASH();3059 if (abortOnFailure) // This branch should be optimized out by the compiler. 3060 abort(); 3061 3061 #else 3062 3062 errno = ENOMEM; … … 3227 3227 extern "C" 3228 3228 #else 3229 #define do_malloc do_malloc< crashOnFailure>3230 3231 template <bool crashOnFailure>3229 #define do_malloc do_malloc<abortOnFailure> 3230 3231 template <bool abortOnFailure> 3232 3232 void* malloc(size_t); 3233 3233 … … 3242 3242 } 3243 3243 3244 template <bool crashOnFailure>3244 template <bool abortOnFailure> 3245 3245 ALWAYS_INLINE 3246 3246 #endif … … 3266 3266 extern "C" 3267 3267 #else 3268 template <bool crashOnFailure>3268 template <bool abortOnFailure> 3269 3269 void* calloc(size_t, size_t); 3270 3270 … … 3279 3279 } 3280 3280 3281 template <bool crashOnFailure>3281 template <bool abortOnFailure> 3282 3282 ALWAYS_INLINE 3283 3283 #endif … … 3312 3312 extern "C" 3313 3313 #else 3314 template <bool crashOnFailure>3314 template <bool abortOnFailure> 3315 3315 void* realloc(void*, size_t); 3316 3316 … … 3325 3325 } 3326 3326 3327 template <bool crashOnFailure>3327 template <bool abortOnFailure> 3328 3328 ALWAYS_INLINE 3329 3329 #endif -
trunk/JavaScriptCore/wtf/FastMalloc.h
r38665 r38672 28 28 namespace WTF { 29 29 30 // These functions call CRASH() if an allocation fails.30 // These functions call abort() if an allocation fails. 31 31 void* fastMalloc(size_t n); 32 32 void* fastZeroedMalloc(size_t n); -
trunk/JavaScriptCore/wtf/TCSpinLock.h
r38665 r38672 47 47 #include <sys/types.h> 48 48 #endif 49 #include <stdlib.h> /* for abort() */ 49 50 50 51 #if PLATFORM(WIN_OS) … … 199 200 200 201 inline void Init() { 201 if (pthread_mutex_init(&private_lock_, NULL) != 0) CRASH();202 if (pthread_mutex_init(&private_lock_, NULL) != 0) abort(); 202 203 } 203 204 inline void Finalize() { 204 if (pthread_mutex_destroy(&private_lock_) != 0) CRASH();205 if (pthread_mutex_destroy(&private_lock_) != 0) abort(); 205 206 } 206 207 inline void Lock() { 207 if (pthread_mutex_lock(&private_lock_) != 0) CRASH();208 if (pthread_mutex_lock(&private_lock_) != 0) abort(); 208 209 } 209 210 inline void Unlock() { 210 if (pthread_mutex_unlock(&private_lock_) != 0) CRASH();211 if (pthread_mutex_unlock(&private_lock_) != 0) abort(); 211 212 } 212 213 };
Note: See TracChangeset
for help on using the changeset viewer.