Fix for bug 318877 . NSPR initialization crashes if OS_TARGET is WINNT on AMD64. Fix casts to work with updated Windows SDK headers. r=wtchang

git-svn-id: svn://10.0.0.236/trunk@235959 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
julien.pierre.boogz%sun.com 2007-09-13 21:48:45 +00:00
parent 8a202a9d58
commit 2677c9da30

View File

@ -235,7 +235,7 @@ void _PR_InitMW(void)
* We use NT 4's InterlockedCompareExchange() to operate
* on PRMWStatus variables.
*/
PR_ASSERT(sizeof(PVOID) == sizeof(PRMWStatus));
PR_ASSERT(sizeof(LONG) == sizeof(PRMWStatus));
TimerInit();
#endif
mw_lock = PR_NewLock();
@ -668,8 +668,8 @@ static void NT_TimeProc(void *arg)
PRRecvWait *desc = overlapped->data.mw.desc;
PRFileDesc *bottom;
if (InterlockedCompareExchange((PVOID *)&desc->outcome,
(PVOID)PR_MW_TIMEOUT, (PVOID)PR_MW_PENDING) != (PVOID)PR_MW_PENDING)
if (InterlockedCompareExchange((LONG *)&desc->outcome,
(LONG)PR_MW_TIMEOUT, (LONG)PR_MW_PENDING) != (LONG)PR_MW_PENDING)
{
/* This wait recv descriptor has already completed. */
return;
@ -849,9 +849,9 @@ PR_IMPLEMENT(PRStatus) PR_AddWaitFileDesc(
{
if (desc->timeout != PR_INTERVAL_NO_TIMEOUT)
{
if (InterlockedCompareExchange((PVOID *)&desc->outcome,
(PVOID)PR_MW_FAILURE, (PVOID)PR_MW_PENDING)
== (PVOID)PR_MW_PENDING)
if (InterlockedCompareExchange((LONG *)&desc->outcome,
(LONG)PR_MW_FAILURE, (LONG)PR_MW_PENDING)
== (LONG)PR_MW_PENDING)
{
CancelTimer(overlapped->data.mw.timer);
}
@ -1094,8 +1094,8 @@ PR_IMPLEMENT(PRStatus) PR_CancelWaitFileDesc(PRWaitGroup *group, PRRecvWait *des
}
#ifdef WINNT
if (InterlockedCompareExchange((PVOID *)&desc->outcome,
(PVOID)PR_MW_INTERRUPT, (PVOID)PR_MW_PENDING) == (PVOID)PR_MW_PENDING)
if (InterlockedCompareExchange((LONG *)&desc->outcome,
(LONG)PR_MW_INTERRUPT, (LONG)PR_MW_PENDING) == (LONG)PR_MW_PENDING)
{
PRFileDesc *bottom = PR_GetIdentitiesLayer(desc->fd, PR_NSPR_IO_LAYER);
PR_ASSERT(NULL != bottom);
@ -1185,9 +1185,9 @@ PR_IMPLEMENT(PRRecvWait*) PR_CancelWaitGroup(PRWaitGroup *group)
{
if (NULL != *desc)
{
if (InterlockedCompareExchange((PVOID *)&(*desc)->outcome,
(PVOID)PR_MW_INTERRUPT, (PVOID)PR_MW_PENDING)
== (PVOID)PR_MW_PENDING)
if (InterlockedCompareExchange((LONG *)&(*desc)->outcome,
(LONG)PR_MW_INTERRUPT, (LONG)PR_MW_PENDING)
== (LONG)PR_MW_PENDING)
{
PRFileDesc *bottom = PR_GetIdentitiesLayer(
(*desc)->fd, PR_NSPR_IO_LAYER);