Changeset 38665 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Nov 21, 2008, 10:49:03 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=22402
Replace abort() with CRASH()

  • wtf/Assertions.h: Added abort() after an attempt to crash for extra safety.
  • runtime/Collector.cpp:
  • wtf/FastMalloc.cpp:
  • wtf/FastMalloc.h:
  • wtf/TCSpinLock.h: Replace abort() with CRASH().
Location:
trunk/JavaScriptCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r38662 r38665  
     12008-11-21  Alexey Proskuryakov  <[email protected]>
     2
     3        Reviewed by Sam Weinig.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=22402
     6        Replace abort() with CRASH()
     7
     8        * wtf/Assertions.h: Added abort() after an attempt to crash for extra safety.
     9
     10        * runtime/Collector.cpp:
     11        * wtf/FastMalloc.cpp:
     12        * wtf/FastMalloc.h:
     13        * wtf/TCSpinLock.h:
     14        Replace abort() with CRASH().
     15
    1162008-11-21  Geoffrey Garen  <[email protected]>
    217
  • trunk/JavaScriptCore/runtime/Collector.cpp

    r38622 r38665  
    284284    ASSERT(heapType == PrimaryHeap || heap.extraCost == 0);
    285285    // FIXME: If another global variable access here doesn't hurt performance
    286     // too much, we could abort() in NDEBUG builds, which could help ensure we
     286    // too much, we could CRASH() in NDEBUG builds, which could help ensure we
    287287    // don't spend any time debugging cases where we allocate inside an object's
    288288    // deallocation code.
     
    975975    ASSERT((primaryHeap.operationInProgress == NoOperation) | (numberHeap.operationInProgress == NoOperation));
    976976    if ((primaryHeap.operationInProgress != NoOperation) | (numberHeap.operationInProgress != NoOperation))
    977         abort();
     977        CRASH();
    978978
    979979    JAVASCRIPTCORE_GC_BEGIN();
  • trunk/JavaScriptCore/wtf/Assertions.h

    r35900 r38665  
    5151#endif
    5252
     53#include <stdlib.h>
     54
    5355#ifdef NDEBUG
    5456#define ASSERTIONS_DISABLED_DEFAULT 1
     
    121123
    122124#ifndef CRASH
    123 #define CRASH() *(int *)(uintptr_t)0xbbadbeef = 0
     125#define CRASH() do { \
     126    *(int *)(uintptr_t)0xbbadbeef = 0; \
     127    abort(); \
     128} while (false)
    124129#endif
    125130
  • trunk/JavaScriptCore/wtf/FastMalloc.cpp

    r37804 r38665  
    192192    void* result = malloc(n);
    193193    if (!result)
    194         abort();
     194        CRASH();
    195195    return result;
    196196}
     
    207207    void* result = calloc(n_elements, element_size);
    208208    if (!result)
    209         abort();
     209        CRASH();
    210210    return result;
    211211}
     
    228228    void* result = realloc(p, n);
    229229    if (!result)
    230         abort();
     230        CRASH();
    231231    return result;
    232232}
     
    687687  if (ClassIndex(0) < 0) {
    688688    MESSAGE("Invalid class index %d for size 0\n", ClassIndex(0));
    689     abort();
     689    CRASH();
    690690  }
    691691  if (static_cast<size_t>(ClassIndex(kMaxSize)) >= sizeof(class_array)) {
    692692    MESSAGE("Invalid class index %d for kMaxSize\n", ClassIndex(kMaxSize));
    693     abort();
     693    CRASH();
    694694  }
    695695
     
    743743    MESSAGE("wrong number of size classes: found %" PRIuS " instead of %d\n",
    744744            sc, int(kNumClasses));
    745     abort();
     745    CRASH();
    746746  }
    747747
     
    761761    if (sc == 0) {
    762762      MESSAGE("Bad size class %" PRIuS " for %" PRIuS "\n", sc, size);
    763       abort();
     763      CRASH();
    764764    }
    765765    if (sc > 1 && size <= class_to_size[sc-1]) {
    766766      MESSAGE("Allocating unnecessarily large class %" PRIuS " for %" PRIuS
    767767              "\n", sc, size);
    768       abort();
     768      CRASH();
    769769    }
    770770    if (sc >= kNumClasses) {
    771771      MESSAGE("Bad size class %" PRIuS " for %" PRIuS "\n", sc, size);
    772       abort();
     772      CRASH();
    773773    }
    774774    const size_t s = class_to_size[sc];
    775775    if (size > s) {
    776776     MESSAGE("Bad size %" PRIuS " for %" PRIuS " (sc = %" PRIuS ")\n", s, size, sc);
    777       abort();
     777      CRASH();
    778778    }
    779779    if (s == 0) {
    780780      MESSAGE("Bad size %" PRIuS " for %" PRIuS " (sc = %" PRIuS ")\n", s, size, sc);
    781       abort();
     781      CRASH();
    782782    }
    783783  }
     
    862862        // Need more room
    863863        free_area_ = reinterpret_cast<char*>(MetaDataAlloc(kAllocIncrement));
    864         if (free_area_ == NULL) abort();
     864        if (free_area_ == NULL) CRASH();
    865865        free_avail_ = kAllocIncrement;
    866866      }
     
    30243024
    30253025#ifdef WTF_CHANGES
    3026 template <bool abortOnFailure>
     3026template <bool crashOnFailure>
    30273027#endif
    30283028static ALWAYS_INLINE void* do_malloc(size_t size) {
     
    30573057  if (!ret) {
    30583058#ifdef WTF_CHANGES
    3059     if (abortOnFailure) // This branch should be optimized out by the compiler.
    3060         abort();
     3059    if (crashOnFailure) // This branch should be optimized out by the compiler.
     3060        CRASH();
    30613061#else
    30623062    errno = ENOMEM;
     
    32273227extern "C"
    32283228#else
    3229 #define do_malloc do_malloc<abortOnFailure>
    3230 
    3231 template <bool abortOnFailure>
     3229#define do_malloc do_malloc<crashOnFailure>
     3230
     3231template <bool crashOnFailure>
    32323232void* malloc(size_t);
    32333233
     
    32423242}
    32433243
    3244 template <bool abortOnFailure>
     3244template <bool crashOnFailure>
    32453245ALWAYS_INLINE
    32463246#endif
     
    32663266extern "C"
    32673267#else
    3268 template <bool abortOnFailure>
     3268template <bool crashOnFailure>
    32693269void* calloc(size_t, size_t);
    32703270
     
    32793279}
    32803280
    3281 template <bool abortOnFailure>
     3281template <bool crashOnFailure>
    32823282ALWAYS_INLINE
    32833283#endif
     
    33123312extern "C"
    33133313#else
    3314 template <bool abortOnFailure>
     3314template <bool crashOnFailure>
    33153315void* realloc(void*, size_t);
    33163316
     
    33253325}
    33263326
    3327 template <bool abortOnFailure>
     3327template <bool crashOnFailure>
    33283328ALWAYS_INLINE
    33293329#endif
  • trunk/JavaScriptCore/wtf/FastMalloc.h

    r37804 r38665  
    2828namespace WTF {
    2929
    30     // These functions call abort() if an allocation fails.
     30    // These functions call CRASH() if an allocation fails.
    3131    void* fastMalloc(size_t n);
    3232    void* fastZeroedMalloc(size_t n);
  • trunk/JavaScriptCore/wtf/TCSpinLock.h

    r34111 r38665  
    4747#include <sys/types.h>
    4848#endif
    49 #include <stdlib.h>     /* for abort() */
    5049
    5150#if PLATFORM(WIN_OS)
     
    200199
    201200  inline void Init() {
    202     if (pthread_mutex_init(&private_lock_, NULL) != 0) abort();
     201    if (pthread_mutex_init(&private_lock_, NULL) != 0) CRASH();
    203202  }
    204203  inline void Finalize() {
    205     if (pthread_mutex_destroy(&private_lock_) != 0) abort();
     204    if (pthread_mutex_destroy(&private_lock_) != 0) CRASH();
    206205  }
    207206  inline void Lock() {
    208     if (pthread_mutex_lock(&private_lock_) != 0) abort();
     207    if (pthread_mutex_lock(&private_lock_) != 0) CRASH();
    209208  }
    210209  inline void Unlock() {
    211     if (pthread_mutex_unlock(&private_lock_) != 0) abort();
     210    if (pthread_mutex_unlock(&private_lock_) != 0) CRASH();
    212211  }
    213212};
Note: See TracChangeset for help on using the changeset viewer.