зеркало из 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. */
|
/* 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)
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче