[NtGDI]
authorJames Tabor <james.tabor@reactos.org>
Thu, 27 Apr 2017 19:20:09 +0000 (19:20 +0000)
committerJames Tabor <james.tabor@reactos.org>
Thu, 27 Apr 2017 19:20:09 +0000 (19:20 +0000)
- Use internal function for setting brush origin. Related to CORE-13110.

svn path=/trunk/; revision=74422

reactos/win32ss/gdi/ntgdi/dcobjs.c

index 1497485..6820416 100644 (file)
@@ -168,40 +168,30 @@ NtGdiSetBrushOrg(
     _In_ INT y,
     _Out_opt_ LPPOINT pptOut)
 {
-    PDC pdc;
-
-    /* Lock the DC */
-    pdc = DC_LockDc(hdc);
-    if (pdc == NULL)
-    {
-        EngSetLastError(ERROR_INVALID_HANDLE);
-        return FALSE;
-    }
 
-    /* Check if the old origin was requested */
-    if (pptOut != NULL)
-    {
-        /* Enter SEH for buffer transfer */
-        _SEH2_TRY
-        {
-            /* Probe and copy the old origin */
-            ProbeForWrite(pptOut, sizeof(POINT), 1);
-            *pptOut = pdc->pdcattr->ptlBrushOrigin;
-        }
-        _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-        {
-            DC_UnlockDc(pdc);
-            _SEH2_YIELD(return FALSE);
-        }
-        _SEH2_END;
-    }
-
-    /* Call the internal function */
-    DC_vSetBrushOrigin(pdc, x, y);
-
-    /* Unlock the DC and return success */
-    DC_UnlockDc(pdc);
-    return TRUE;
+    POINT ptOut;
+                /* Call the internal function */
+    BOOL  Ret = GreSetBrushOrg( hdc, x, y, &ptOut);
+    if (Ret)
+    {
+       /* Check if the old origin was requested */
+       if (pptOut != NULL)
+       {
+           /* Enter SEH for buffer transfer */
+           _SEH2_TRY
+           {
+               /* Probe and copy the old origin */
+               ProbeForWrite(pptOut, sizeof(POINT), 1);
+               *pptOut = ptOut;
+           }
+           _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+           {
+               _SEH2_YIELD(return FALSE);
+           }
+           _SEH2_END;
+       }
+    }
+    return Ret;
 }
 
 HPALETTE