mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 23:02:59 +00:00
reformatting + fix GDIOBJ_LockMultipleObj() to not try to lock a NULL handle.
svn path=/trunk/; revision=5413
This commit is contained in:
parent
3f0eccc563
commit
0132757b63
1 changed files with 44 additions and 33 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue