зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1267557 part 0 - Move JS poison constants to jsutil.h. r=jonco
This commit is contained in:
Родитель
cbf2a01e87
Коммит
88d16d7efa
|
@ -35,22 +35,6 @@ namespace mozilla {}
|
|||
/* The private JS engine namespace. */
|
||||
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_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_ALLOCATED_NURSERY_PATTERN,
|
||||
JS_FRESH_TENURED_PATTERN,
|
||||
JS_MOVED_TENURED_PATTERN,
|
||||
JS_SWEPT_TENURED_PATTERN,
|
||||
JS_ALLOCATED_TENURED_PATTERN,
|
||||
JS_SWEPT_CODE_PATTERN,
|
||||
JS_SWEPT_FRAME_PATTERN
|
||||
JS_SWEPT_CODE_PATTERN
|
||||
};
|
||||
const int numPoisonBytes = sizeof(poisonBytes) / sizeof(poisonBytes[0]);
|
||||
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 */
|
||||
|
||||
/*
|
||||
* 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*
|
||||
Poison(void* ptr, uint8_t value, size_t num)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче