[ros-diffs] [greatlrd] 28485: Kill reactos own syscall api NtGdiCreatePolygonRgn, it have been redirect to another ros own syscall named NtGdiCreatePolyPolygonRgn. see my last commit for gdi32
greatlrd at svn.reactos.org
greatlrd at svn.reactos.org
Thu Aug 23 21:33:22 CEST 2007
- Previous message: [ros-diffs] [greatlrd] 28484: remove redirect of CreatePolyPolygonRgn at 16 and implement own stub for it, it is hacked, it should doing, return (HRGN) NtGdiPolyPolyDraw(fnPolyFillMode, lppt, lpPolyCounts, nCount, 6 ); remove redirect of CreatePolygonRgn at 12 and implement own stub for it, it is hacked, it should doing return NtGdiPolyPolyDraw(fnPolyFillMode,lppt,cPoints,1,6); remove redirect of CreateRectRgn at 16 and implement own stub for it, some part need be done in user mode Fix CreateRectRgnIndirect it call now on CreateRectRgn for some part need be done in user mode, and it crash if NULL comes in as param, like windows does. Fix CreatePenIndirect ir call now on CreatePen for some stuff need be done in user mode. Add comment to CreatePen it need be fix.
- Next message: [ros-diffs] [fireball] 28486: - Set NULL Io cancel routine, fixes an assert when using usb storage driver.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: greatlrd
Date: Thu Aug 23 23:33:21 2007
New Revision: 28485
URL: http://svn.reactos.org/svn/reactos?rev=28485&view=rev
Log:
Kill reactos own syscall api NtGdiCreatePolygonRgn, it have been redirect to another ros own syscall named NtGdiCreatePolyPolygonRgn. see my last commit for gdi32
Modified:
trunk/reactos/subsystems/win32/win32k/objects/region.c
trunk/reactos/subsystems/win32/win32k/w32ksvc.db
Modified: trunk/reactos/subsystems/win32/win32k/objects/region.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/region.c?rev=28485&r1=28484&r2=28485&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/region.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/region.c Thu Aug 23 23:33:21 2007
@@ -3421,100 +3421,6 @@
return hrgn;
}
-HRGN
-STDCALL
-NtGdiCreatePolygonRgn(CONST PPOINT pt,
- INT Count,
- INT PolyFillMode)
-{
- POINT *SafePoints;
- NTSTATUS Status = STATUS_SUCCESS;
- HRGN hRgn;
-
-
- if (pt == NULL || Count == 0 ||
- (PolyFillMode != WINDING && PolyFillMode != ALTERNATE))
- {
- /* Windows doesn't set a last error here */
- return (HRGN)0;
- }
-
- if (Count == 1)
- {
- /* can't create a region with only one point! */
- SetLastWin32Error(ERROR_INVALID_PARAMETER);
- return (HRGN)0;
- }
-
- if (Count == 2)
- {
- /* Windows creates an empty region! */
- ROSRGNDATA *rgn;
-
- if(!(hRgn = RGNDATA_AllocRgn(1)))
- {
- return (HRGN)0;
- }
- if(!(rgn = RGNDATA_LockRgn(hRgn)))
- {
- NtGdiDeleteObject(hRgn);
- return (HRGN)0;
- }
-
- EMPTY_REGION(rgn);
-
- RGNDATA_UnlockRgn(rgn);
- return hRgn;
- }
-
- _SEH_TRY
- {
- ProbeForRead(pt,
- Count * sizeof(POINT),
- 1);
- }
- _SEH_HANDLE
- {
- Status = _SEH_GetExceptionCode();
- }
- _SEH_END;
-
- if (!NT_SUCCESS(Status))
- {
- SetLastNtError(Status);
- return (HRGN)0;
- }
-
- if (!(SafePoints = ExAllocatePoolWithTag(PagedPool, Count * sizeof(POINT), TAG_REGION)))
- {
- SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY);
- return (HRGN)0;
- }
-
- _SEH_TRY
- {
- /* pointers were already probed! */
- RtlCopyMemory(SafePoints,
- pt,
- Count * sizeof(POINT));
- }
- _SEH_HANDLE
- {
- Status = _SEH_GetExceptionCode();
- }
- _SEH_END;
- if (!NT_SUCCESS(Status))
- {
- ExFreePool(SafePoints);
- SetLastNtError(Status);
- return (HRGN)0;
- }
-
- hRgn = IntCreatePolyPolgonRgn(SafePoints, &Count, 1, PolyFillMode);
-
- ExFreePool(SafePoints);
- return hRgn;
-}
HRGN
STDCALL
Modified: trunk/reactos/subsystems/win32/win32k/w32ksvc.db
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/w32ksvc.db?rev=28485&r1=28484&r2=28485&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/w32ksvc.db (original)
+++ trunk/reactos/subsystems/win32/win32k/w32ksvc.db Thu Aug 23 23:33:21 2007
@@ -752,7 +752,6 @@
NtGdiCopyEnhMetaFile 2
NtGdiCreateDIBitmap 6
NtGdiCreateEnhMetaFile 4
-NtGdiCreatePolygonRgn 3
NtGdiCreatePolyPolygonRgn 4
NtGdiCreateScalableFontResource 4
NtGdiDeleteEnhMetaFile 1
- Previous message: [ros-diffs] [greatlrd] 28484: remove redirect of CreatePolyPolygonRgn at 16 and implement own stub for it, it is hacked, it should doing, return (HRGN) NtGdiPolyPolyDraw(fnPolyFillMode, lppt, lpPolyCounts, nCount, 6 ); remove redirect of CreatePolygonRgn at 12 and implement own stub for it, it is hacked, it should doing return NtGdiPolyPolyDraw(fnPolyFillMode,lppt,cPoints,1,6); remove redirect of CreateRectRgn at 16 and implement own stub for it, some part need be done in user mode Fix CreateRectRgnIndirect it call now on CreateRectRgn for some part need be done in user mode, and it crash if NULL comes in as param, like windows does. Fix CreatePenIndirect ir call now on CreatePen for some stuff need be done in user mode. Add comment to CreatePen it need be fix.
- Next message: [ros-diffs] [fireball] 28486: - Set NULL Io cancel routine, fixes an assert when using usb storage driver.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Ros-diffs
mailing list