Bug 1267557 part 0 - Move JS poison constants to jsutil.h. r=jonco

This commit is contained in:
Jan de Mooij 2016-04-28 13:38:05 +02:00
Родитель cbf2a01e87
Коммит 88d16d7efa
3 изменённых файлов: 18 добавлений и 18 удалений

Просмотреть файл

@ -35,22 +35,6 @@ namespace mozilla {}
/* The private JS engine namespace. */ /* The private JS engine namespace. */
namespace js {} namespace js {}
/*
* Patterns used by SpiderMonkey to overwrite unused memory. If you are
* accessing an object with one of these pattern, you probably have a dangling
* pointer.
*/
#define JS_FRESH_NURSERY_PATTERN 0x2F
#define JS_SWEPT_NURSERY_PATTERN 0x2B
#define JS_ALLOCATED_NURSERY_PATTERN 0x2D
#define JS_FRESH_TENURED_PATTERN 0x4F
#define JS_MOVED_TENURED_PATTERN 0x49
#define JS_SWEPT_TENURED_PATTERN 0x4B
#define JS_ALLOCATED_TENURED_PATTERN 0x4D
#define JS_EMPTY_STOREBUFFER_PATTERN 0x1B
#define JS_SWEPT_CODE_PATTERN 0x3B
#define JS_SWEPT_FRAME_PATTERN 0x5B
#define JS_STATIC_ASSERT(cond) static_assert(cond, "JS_STATIC_ASSERT") #define JS_STATIC_ASSERT(cond) static_assert(cond, "JS_STATIC_ASSERT")
#define JS_STATIC_ASSERT_IF(cond, expr) MOZ_STATIC_ASSERT_IF(cond, expr, "JS_STATIC_ASSERT_IF") #define JS_STATIC_ASSERT_IF(cond, expr) MOZ_STATIC_ASSERT_IF(cond, expr, "JS_STATIC_ASSERT_IF")

Просмотреть файл

@ -126,10 +126,10 @@ IsThingPoisoned(T* thing)
JS_SWEPT_NURSERY_PATTERN, JS_SWEPT_NURSERY_PATTERN,
JS_ALLOCATED_NURSERY_PATTERN, JS_ALLOCATED_NURSERY_PATTERN,
JS_FRESH_TENURED_PATTERN, JS_FRESH_TENURED_PATTERN,
JS_MOVED_TENURED_PATTERN,
JS_SWEPT_TENURED_PATTERN, JS_SWEPT_TENURED_PATTERN,
JS_ALLOCATED_TENURED_PATTERN, JS_ALLOCATED_TENURED_PATTERN,
JS_SWEPT_CODE_PATTERN, JS_SWEPT_CODE_PATTERN
JS_SWEPT_FRAME_PATTERN
}; };
const int numPoisonBytes = sizeof(poisonBytes) / sizeof(poisonBytes[0]); const int numPoisonBytes = sizeof(poisonBytes) / sizeof(poisonBytes[0]);
uint32_t* p = reinterpret_cast<uint32_t*>(reinterpret_cast<FreeSpan*>(thing) + 1); uint32_t* p = reinterpret_cast<uint32_t*>(reinterpret_cast<FreeSpan*>(thing) + 1);

Просмотреть файл

@ -314,6 +314,22 @@ PodSet(T* aDst, T aSrc, size_t aNElem)
} /* namespace mozilla */ } /* namespace mozilla */
/*
* Patterns used by SpiderMonkey to overwrite unused memory. If you are
* accessing an object with one of these pattern, you probably have a dangling
* pointer.
*
* Note: new patterns should also be added to the array in IsThingPoisoned!
*/
#define JS_FRESH_NURSERY_PATTERN 0x2F
#define JS_SWEPT_NURSERY_PATTERN 0x2B
#define JS_ALLOCATED_NURSERY_PATTERN 0x2D
#define JS_FRESH_TENURED_PATTERN 0x4F
#define JS_MOVED_TENURED_PATTERN 0x49
#define JS_SWEPT_TENURED_PATTERN 0x4B
#define JS_ALLOCATED_TENURED_PATTERN 0x4D
#define JS_SWEPT_CODE_PATTERN 0x3B
static inline void* static inline void*
Poison(void* ptr, uint8_t value, size_t num) Poison(void* ptr, uint8_t value, size_t num)
{ {