Module: wine Branch: master Commit: 1fa938c17e6c6ca0243111604746923e912f138f URL: https://gitlab.winehq.org/wine/wine/-/commit/1fa938c17e6c6ca0243111604746923...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Apr 11 17:12:18 2023 +0200
gdi32: Factor out function for obtaining gdi object handle.
---
dlls/gdi32/enhmetafile.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c index adbc9b296e7..608995ef5e2 100644 --- a/dlls/gdi32/enhmetafile.c +++ b/dlls/gdi32/enhmetafile.c @@ -768,6 +768,12 @@ static BOOL emr_produces_output(int type) } }
+static HGDIOBJ get_object_handle(HANDLETABLE *handletable, DWORD i) +{ + if (i & 0x80000000) + return GetStockObject( i & 0x7fffffff ); + return handletable->objectHandle[i]; +}
/***************************************************************************** * PlayEnhMetaFileRecord (GDI32.@) @@ -899,19 +905,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( case EMR_SELECTOBJECT: { const EMRSELECTOBJECT *pSelectObject = (const EMRSELECTOBJECT *)mr; - if( pSelectObject->ihObject & 0x80000000 ) { - /* High order bit is set - it's a stock object - * Strip the high bit to get the index. - * See MSDN article Q142319 - */ - SelectObject( hdc, GetStockObject( pSelectObject->ihObject & - 0x7fffffff ) ); - } else { - /* High order bit wasn't set - not a stock object - */ - SelectObject( hdc, - (handletable->objectHandle)[pSelectObject->ihObject] ); - } + SelectObject( hdc, get_object_handle(handletable, pSelectObject->ihObject) ); break; } case EMR_DELETEOBJECT: @@ -1297,11 +1291,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( { const EMRSELECTPALETTE *lpSelectPal = (const EMRSELECTPALETTE *)mr;
- if( lpSelectPal->ihPal & 0x80000000 ) { - SelectPalette( hdc, GetStockObject(lpSelectPal->ihPal & 0x7fffffff), TRUE); - } else { - SelectPalette( hdc, (handletable->objectHandle)[lpSelectPal->ihPal], TRUE); - } + SelectPalette( hdc, get_object_handle(handletable, lpSelectPal->ihPal), TRUE ); break; }