mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Merge
This commit is contained in:
commit
cc9eacee25
@ -251,7 +251,7 @@ MapAlignedPages(size_t size, size_t alignment)
|
|||||||
*/
|
*/
|
||||||
// TODO: this is totally a hack for now; need to replace
|
// TODO: this is totally a hack for now; need to replace
|
||||||
void *p = mmap((caddr_t) alignment, size, PROT_READ | PROT_WRITE,
|
void *p = mmap((caddr_t) alignment, size, PROT_READ | PROT_WRITE,
|
||||||
MAP_PRIVATE | MAP_NOSYNC | MAP_ALIGN | MAP_ANON | MAP_32BIT, -1, 0);
|
MAP_PRIVATE | MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0);
|
||||||
if (p == MAP_FAILED)
|
if (p == MAP_FAILED)
|
||||||
return NULL;
|
return NULL;
|
||||||
return p;
|
return p;
|
||||||
@ -314,7 +314,7 @@ MapPages(void *addr, size_t size)
|
|||||||
* of existing mappings, and we only want to create new mappings.
|
* of existing mappings, and we only want to create new mappings.
|
||||||
*/
|
*/
|
||||||
// TODO: this is totally a hack for now; need to replace
|
// TODO: this is totally a hack for now; need to replace
|
||||||
void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_32BIT,
|
void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
|
||||||
-1, 0);
|
-1, 0);
|
||||||
if (p == MAP_FAILED)
|
if (p == MAP_FAILED)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -168,14 +168,14 @@ typedef enum JSValueMask16
|
|||||||
: uint16
|
: uint16
|
||||||
# endif
|
# endif
|
||||||
{
|
{
|
||||||
JSVAL_MASK16_NULL = (uint16)0x0001,
|
JSVAL_MASK16_INT32 = (uint16)0x0001,
|
||||||
JSVAL_MASK16_UNDEFINED = (uint16)0x0002,
|
JSVAL_MASK16_UNDEFINED = (uint16)0x0002,
|
||||||
JSVAL_MASK16_INT32 = (uint16)0x0004,
|
JSVAL_MASK16_STRING = (uint16)0x0004,
|
||||||
JSVAL_MASK16_STRING = (uint16)0x0008,
|
JSVAL_MASK16_BOOLEAN = (uint16)0x0008,
|
||||||
JSVAL_MASK16_NONFUNOBJ = (uint16)0x0010,
|
JSVAL_MASK16_MAGIC = (uint16)0x0010,
|
||||||
JSVAL_MASK16_FUNOBJ = (uint16)0x0020,
|
JSVAL_MASK16_NULL = (uint16)0x2000,
|
||||||
JSVAL_MASK16_BOOLEAN = (uint16)0x0040,
|
JSVAL_MASK16_NONFUNOBJ = (uint16)0x4000,
|
||||||
JSVAL_MASK16_MAGIC = (uint16)0x0080,
|
JSVAL_MASK16_FUNOBJ = (uint16)0x8000,
|
||||||
|
|
||||||
JSVAL_MASK16_SINGLETON = JSVAL_MASK16_NULL | JSVAL_MASK16_UNDEFINED,
|
JSVAL_MASK16_SINGLETON = JSVAL_MASK16_NULL | JSVAL_MASK16_UNDEFINED,
|
||||||
JSVAL_MASK16_OBJECT = JSVAL_MASK16_NONFUNOBJ | JSVAL_MASK16_FUNOBJ,
|
JSVAL_MASK16_OBJECT = JSVAL_MASK16_NONFUNOBJ | JSVAL_MASK16_FUNOBJ,
|
||||||
@ -203,14 +203,14 @@ JSValueMask16;
|
|||||||
|
|
||||||
typedef uint16 JSValueMask16;
|
typedef uint16 JSValueMask16;
|
||||||
|
|
||||||
#define JSVAL_MASK16_NULL ((uint16)0x0001)
|
#define JSVAL_MASK16_INT32 ((uint16)0x0001)
|
||||||
#define JSVAL_MASK16_UNDEFINED ((uint16)0x0002)
|
#define JSVAL_MASK16_UNDEFINED ((uint16)0x0002)
|
||||||
#define JSVAL_MASK16_INT32 ((uint16)0x0004)
|
#define JSVAL_MASK16_STRING ((uint16)0x0004)
|
||||||
#define JSVAL_MASK16_STRING ((uint16)0x0008)
|
#define JSVAL_MASK16_BOOLEAN ((uint16)0x0008)
|
||||||
#define JSVAL_MASK16_NONFUNOBJ ((uint16)0x0010)
|
#define JSVAL_MASK16_MAGIC ((uint16)0x0010)
|
||||||
#define JSVAL_MASK16_FUNOBJ ((uint16)0x0020)
|
#define JSVAL_MASK16_NULL ((uint16)0x2000)
|
||||||
#define JSVAL_MASK16_BOOLEAN ((uint16)0x0040)
|
#define JSVAL_MASK16_NONFUNOBJ ((uint16)0x4000)
|
||||||
#define JSVAL_MASK16_MAGIC ((uint16)0x0080)
|
#define JSVAL_MASK16_FUNOBJ ((uint16)0x8000)
|
||||||
#define JSVAL_MASK16_SINGLETON (JSVAL_MASK16_NULL | JSVAL_MASK16_UNDEFINED)
|
#define JSVAL_MASK16_SINGLETON (JSVAL_MASK16_NULL | JSVAL_MASK16_UNDEFINED)
|
||||||
#define JSVAL_MASK16_OBJECT (JSVAL_MASK16_NONFUNOBJ | JSVAL_MASK16_FUNOBJ)
|
#define JSVAL_MASK16_OBJECT (JSVAL_MASK16_NONFUNOBJ | JSVAL_MASK16_FUNOBJ)
|
||||||
#define JSVAL_MASK16_OBJORNULL (JSVAL_MASK16_OBJECT | JSVAL_MASK16_NULL)
|
#define JSVAL_MASK16_OBJORNULL (JSVAL_MASK16_OBJECT | JSVAL_MASK16_NULL)
|
||||||
@ -221,14 +221,14 @@ typedef uint16 JSValueMask16;
|
|||||||
|
|
||||||
#define JSVAL_MASK32_CLEAR ((uint32)0xFFFF0000)
|
#define JSVAL_MASK32_CLEAR ((uint32)0xFFFF0000)
|
||||||
|
|
||||||
#define JSVAL_MASK32_NULL ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_NULL))
|
|
||||||
#define JSVAL_MASK32_UNDEFINED ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_UNDEFINED))
|
|
||||||
#define JSVAL_MASK32_INT32 ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_INT32))
|
#define JSVAL_MASK32_INT32 ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_INT32))
|
||||||
|
#define JSVAL_MASK32_UNDEFINED ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_UNDEFINED))
|
||||||
#define JSVAL_MASK32_STRING ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_STRING))
|
#define JSVAL_MASK32_STRING ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_STRING))
|
||||||
#define JSVAL_MASK32_NONFUNOBJ ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_NONFUNOBJ))
|
|
||||||
#define JSVAL_MASK32_FUNOBJ ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_FUNOBJ))
|
|
||||||
#define JSVAL_MASK32_BOOLEAN ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_BOOLEAN))
|
#define JSVAL_MASK32_BOOLEAN ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_BOOLEAN))
|
||||||
#define JSVAL_MASK32_MAGIC ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_MAGIC))
|
#define JSVAL_MASK32_MAGIC ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_MAGIC))
|
||||||
|
#define JSVAL_MASK32_NULL ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_NULL))
|
||||||
|
#define JSVAL_MASK32_NONFUNOBJ ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_NONFUNOBJ))
|
||||||
|
#define JSVAL_MASK32_FUNOBJ ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_FUNOBJ))
|
||||||
|
|
||||||
#define JSVAL_MASK32_SINGLETON ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_SINGLETON))
|
#define JSVAL_MASK32_SINGLETON ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_SINGLETON))
|
||||||
#define JSVAL_MASK32_OBJECT ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_OBJECT))
|
#define JSVAL_MASK32_OBJECT ((uint32)(JSVAL_MASK32_CLEAR | JSVAL_MASK16_OBJECT))
|
||||||
@ -590,25 +590,29 @@ static JS_ALWAYS_INLINE JSBool
|
|||||||
JSVAL_IS_NUMBER_IMPL(jsval_layout l)
|
JSVAL_IS_NUMBER_IMPL(jsval_layout l)
|
||||||
{
|
{
|
||||||
JSValueMask32 mask = l.s.u.mask32;
|
JSValueMask32 mask = l.s.u.mask32;
|
||||||
return mask < JSVAL_MASK32_CLEAR || mask == JSVAL_MASK32_INT32;
|
JS_ASSERT(mask != JSVAL_MASK32_CLEAR);
|
||||||
|
return mask <= JSVAL_MASK32_INT32;
|
||||||
}
|
}
|
||||||
|
|
||||||
static JS_ALWAYS_INLINE JSBool
|
static JS_ALWAYS_INLINE JSBool
|
||||||
JSVAL_IS_OBJECT_IMPL(jsval_layout l)
|
JSVAL_IS_OBJECT_IMPL(jsval_layout l)
|
||||||
{
|
{
|
||||||
return (l.s.u.mask32 & JSVAL_MASK32_OBJECT) > JSVAL_MASK32_CLEAR;
|
JSValueMask32 mask = l.s.u.mask32;
|
||||||
|
return mask >= JSVAL_MASK32_NONFUNOBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
static JS_ALWAYS_INLINE JSBool
|
static JS_ALWAYS_INLINE JSBool
|
||||||
JSVAL_IS_OBJECT_OR_NULL_IMPL(jsval_layout l)
|
JSVAL_IS_OBJECT_OR_NULL_IMPL(jsval_layout l)
|
||||||
{
|
{
|
||||||
return (l.s.u.mask32 & JSVAL_MASK32_OBJORNULL) > JSVAL_MASK32_CLEAR;
|
JSValueMask32 mask = l.s.u.mask32;
|
||||||
|
return mask >= JSVAL_MASK32_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static JS_ALWAYS_INLINE JSBool
|
static JS_ALWAYS_INLINE JSBool
|
||||||
JSVAL_IS_PRIMITIVE_IMPL(jsval_layout l)
|
JSVAL_IS_PRIMITIVE_IMPL(jsval_layout l)
|
||||||
{
|
{
|
||||||
return (l.s.u.mask32 & JSVAL_MASK32_OBJECT) <= JSVAL_MASK32_CLEAR;
|
JSValueMask32 mask = l.s.u.mask32;
|
||||||
|
return mask < JSVAL_MASK32_NONFUNOBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
static JS_ALWAYS_INLINE JSBool
|
static JS_ALWAYS_INLINE JSBool
|
||||||
|
@ -86,6 +86,7 @@ XPCTraceableVariant::~XPCTraceableVariant()
|
|||||||
if(!JSVAL_IS_STRING(mJSVal))
|
if(!JSVAL_IS_STRING(mJSVal))
|
||||||
nsVariant::Cleanup(&mData);
|
nsVariant::Cleanup(&mData);
|
||||||
|
|
||||||
|
if (!JSVAL_IS_NULL(mJSVal))
|
||||||
RemoveFromRootSet(nsXPConnect::GetRuntimeInstance()->GetJSRuntime());
|
RemoveFromRootSet(nsXPConnect::GetRuntimeInstance()->GetJSRuntime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user