reformatting + fix GDIOBJ_LockMultipleObj() to not try to lock a NULL handle.

svn path=/trunk/; revision=5413
This commit is contained in:
Royce Mitchell III 2003-08-04 19:08:26 +00:00
parent 3f0eccc563
commit 0132757b63

View file

@ -19,7 +19,7 @@
/* /*
* GDIOBJ.C - GDI object manipulation routines * GDIOBJ.C - GDI object manipulation routines
* *
* $Id: gdiobj.c,v 1.32 2003/08/04 00:24:07 royce Exp $ * $Id: gdiobj.c,v 1.33 2003/08/04 19:08:26 royce Exp $
* *
*/ */
@ -335,19 +335,26 @@ GDIOBJ_LockMultipleObj( PGDIMULTILOCK pList, INT nObj )
{ {
INT i, j; INT i, j;
ASSERT( pList ); ASSERT( pList );
// FIXME - check for "invalid" handles
//go through the list checking for duplicate objects //go through the list checking for duplicate objects
for( i = 0; i < nObj; i++ ){ for( i = 0; i < nObj; i++ )
{
(pList+i)->pObj = NULL; (pList+i)->pObj = NULL;
for( j = 0; j < i; j++ ){ for( j = 0; j < i; j++ )
{
if( ((pList+i)->hObj == (pList+j)->hObj) if( ((pList+i)->hObj == (pList+j)->hObj)
&& ((pList+i)->Magic == (pList+j)->Magic) ){ && ((pList+i)->Magic == (pList+j)->Magic)
)
{
//already locked, so just copy the pointer to the object //already locked, so just copy the pointer to the object
(pList+i)->pObj = (pList+j)->pObj; (pList+i)->pObj = (pList+j)->pObj;
break; break;
} }
} }
if( (pList+i)->pObj == NULL ){ if( (pList+i)->pObj == NULL )
{
//object hasn't been locked, so lock it. //object hasn't been locked, so lock it.
if ( (pList+i)->hObj )
(pList+i)->pObj = GDIOBJ_LockObj( (pList+i)->hObj, (pList+i)->Magic ); (pList+i)->pObj = GDIOBJ_LockObj( (pList+i)->hObj, (pList+i)->Magic );
} }
} }
@ -369,10 +376,14 @@ GDIOBJ_UnlockMultipleObj( PGDIMULTILOCK pList, INT nObj )
INT i, j; INT i, j;
ASSERT( pList ); ASSERT( pList );
//go through the list checking for duplicate objects //go through the list checking for duplicate objects
for( i = 0; i < nObj; i++ ){ for( i = 0; i < nObj; i++ )
if( (pList+i)->pObj != NULL ){ {
for( j = i+1; j < nObj; j++ ){ if( (pList+i)->pObj != NULL )
if( ((pList+i)->pObj == (pList+j)->pObj) ){ {
for( j = i+1; j < nObj; j++ )
{
if( ((pList+i)->pObj == (pList+j)->pObj) )
{
//set the pointer to zero for all duplicates //set the pointer to zero for all duplicates
(pList+j)->pObj = NULL; (pList+j)->pObj = NULL;
} }