[WIN32K]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 18 Dec 2012 15:20:20 +0000 (15:20 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 18 Dec 2012 15:20:20 +0000 (15:20 +0000)
- Add/fix some annotations
- Simplify code in NtGdiSetMiterLimit

svn path=/trunk/; revision=57944

reactos/include/psdk/ntgdi.h
reactos/include/psdk/sal.h
reactos/win32ss/gdi/eng/pdevobj.c
reactos/win32ss/gdi/eng/pdevobj.h
reactos/win32ss/gdi/eng/xlateobj.h
reactos/win32ss/gdi/ntgdi/dcutil.c
reactos/win32ss/gdi/ntgdi/line.c
reactos/win32ss/gdi/ntgdi/path.c

index ef94558..c141059 100644 (file)
@@ -2385,6 +2385,7 @@ NtGdiGetDeviceCaps(
     _In_ HDC hdc,
     _In_ INT i);
 
+_Success_(return!=FALSE)
 W32KAPI
 BOOL
 APIENTRY
index 2ec6c46..0acf003 100644 (file)
@@ -519,7 +519,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
 //#define _Deref_pre_maybenull_
 //#define _Deref_pre_notnull_
 //#define _Deref_pre_null_
-//#define _Deref_pre_opt_bytecap_(size)
+#define _Deref_pre_opt_bytecap_(size)                               _SAL11_Name(_Pre_opt_bytecap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))])
 //#define _Deref_pre_opt_bytecap_c_(size)
 //#define _Deref_pre_opt_bytecap_x_(size)
 //#define _Deref_pre_opt_bytecount_(size)
index b890f47..77ee756 100644 (file)
@@ -472,7 +472,7 @@ leave:
 PPDEVOBJ
 NTAPI
 EngpGetPDEV(
-    PUNICODE_STRING pustrDeviceName)
+    _In_ PUNICODE_STRING pustrDeviceName)
 {
     UNICODE_STRING ustrCurrent;
     PPDEVOBJ ppdev;
@@ -775,7 +775,7 @@ NtGdiGetDeviceCaps(
     return 0;
 }
 
-
+_Success_(return!=FALSE)
 BOOL
 APIENTRY
 NtGdiGetDeviceCapsAll(
index 4f3a649..491abc9 100644 (file)
@@ -160,22 +160,24 @@ extern PPDEVOBJ gppdevPrimary;
 
 PPDEVOBJ
 NTAPI
-EngpGetPDEV(PUNICODE_STRING pustrDevice);
+EngpGetPDEV(
+    _In_ PUNICODE_STRING pustrDevice);
 
 VOID
 NTAPI
-PDEVOBJ_vRelease(PPDEVOBJ ppdev);
+PDEVOBJ_vRelease(
+    _Inout_ PPDEVOBJ ppdev);
 
 PSURFACE
 NTAPI
 PDEVOBJ_pSurface(
-    PPDEVOBJ ppdev);
+    _In_ PPDEVOBJ ppdev);
 
 VOID
 NTAPI
 PDEVOBJ_vGetDeviceCaps(
-    PPDEVOBJ ppdev,
-    PDEVCAPS pDevCaps);
+    _In_ PPDEVOBJ ppdev,
+    _Out_ PDEVCAPS pDevCaps);
 
 INIT_FUNCTION
 NTSTATUS
@@ -184,6 +186,8 @@ InitPDEVImpl(VOID);
 
 PSIZEL
 FASTCALL
-PDEVOBJ_sizl(PPDEVOBJ, PSIZEL);
+PDEVOBJ_sizl(
+    _In_ PPDEVOBJ ppdev,
+    _In_ PSIZEL psizl);
 
 #endif /* !__WIN32K_PDEVOBJ_H */
index 3cf240b..fa4916e 100644 (file)
@@ -9,7 +9,12 @@
 
 struct _EXLATEOBJ;
 
-typedef ULONG (FASTCALL *PFN_XLATE)(struct _EXLATEOBJ *pexlo, ULONG iColor);
+_Function_class_(FN_XLATE)
+typedef
+ULONG 
+(FASTCALL *PFN_XLATE)(
+    _In_ struct _EXLATEOBJ *pexlo,
+    _In_ ULONG iColor);
 
 typedef struct _EXLATEOBJ
 {
@@ -38,23 +43,51 @@ typedef struct _EXLATEOBJ
     };
 } EXLATEOBJ, *PEXLATEOBJ;
 
+extern EXLATEOBJ gexloTrivial;
+
+_Notnull_
 PFN_XLATE
 FORCEINLINE
-XLATEOBJ_pfnXlate(XLATEOBJ *pxlo)
+XLATEOBJ_pfnXlate(
+    _In_ XLATEOBJ *pxlo)
 {
     return ((PEXLATEOBJ)pxlo)->pfnXlate;
 }
 
-extern EXLATEOBJ gexloTrivial;
+VOID
+NTAPI
+EXLATEOBJ_vInitialize(
+    _Out_ PEXLATEOBJ pexlo,
+    _In_ PPALETTE ppalSrc,
+    _In_ PPALETTE ppalDst,
+    _In_ COLORREF crSrcBackColor,
+    _In_ COLORREF crDstBackColor,
+    _In_ COLORREF crDstForeColor);
+
+VOID
+NTAPI
+EXLATEOBJ_vInitXlateFromDCs(
+    _Out_ PEXLATEOBJ pexlo,
+    _In_ PDC pdcSrc,
+    _In_ PDC pdcDst);
 
+VOID
+NTAPI
+EXLATEOBJ_vInitSrcMonoXlate(
+    _Out_ PEXLATEOBJ pexlo,
+    _In_ PPALETTE ppalDst,
+    _In_ COLORREF crBackgroundClr,
+    _In_ COLORREF crForegroundClr);
+
+VOID
+NTAPI
+EXLATEOBJ_vCleanup(
+    _Inout_ PEXLATEOBJ pexlo);
+
+_Always_(_Post_satisfies_(return==iColor))
 ULONG
 FASTCALL
-EXLATEOBJ_iXlateTrivial(PEXLATEOBJ pexlo, ULONG iColor);
-
-void
-DbgCmpXlate(XLATEOBJ *pxlo1, XLATEOBJ *pxlo2);
+EXLATEOBJ_iXlateTrivial(
+    _In_ PEXLATEOBJ pexlo,
+    _In_ ULONG iColor);
 
-VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PPALETTE ppalSrc, PPALETTE ppalDst, ULONG, ULONG, ULONG);
-VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
-VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
-VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);
index d7f05af..7b89718 100644 (file)
@@ -113,7 +113,7 @@ GreSetStretchBltMode(HDC hDC, int iStretchMode)
 
        // Wine returns an error here. We set the default.
        if ((iStretchMode <= 0) || (iStretchMode > MAXSTRETCHBLTMODE)) iStretchMode = WHITEONBLACK;
-  
+
        pdcattr->jStretchBltMode = iStretchMode;
     }
     return oSMode;
@@ -355,7 +355,8 @@ NtGdiGetDCDword(
     return Ret;
 }
 
-BOOL _Success_(return != FALSE)
+_Success_(return != FALSE)
+BOOL
 APIENTRY
 NtGdiGetAndSetDCDword(
     _In_ HDC hdc,
index f8e1370..39a0c71 100644 (file)
@@ -540,7 +540,8 @@ NtGdiPolyDraw(
 /*
  * @implemented
  */
-BOOL _Success_(return != FALSE)
+_Success_(return != FALSE)
+BOOL
 APIENTRY
 NtGdiMoveTo(
     IN HDC hdc,
index 0c81b0a..c318bea 100644 (file)
@@ -2585,7 +2585,7 @@ NtGdiSetMiterLimit(
 {
   DC *pDc;
   gxf_long worker, worker1;
-  NTSTATUS Status = STATUS_SUCCESS;
+  BOOL bResult = TRUE;
 
   if (!(pDc = DC_LockDc(hdc)))
   {
@@ -2601,26 +2601,19 @@ NtGdiSetMiterLimit(
   {
       _SEH2_TRY
       {
-          ProbeForWrite(pdwOut,
-                 sizeof(DWORD),
-                             1);
+          ProbeForWrite(pdwOut, sizeof(DWORD), 1);
           *pdwOut = worker1.l;
       }
       _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
       {
-          Status = _SEH2_GetExceptionCode();
+          SetLastNtError(_SEH2_GetExceptionCode());
+          bResult = FALSE;
       }
        _SEH2_END;
-      if (!NT_SUCCESS(Status))
-      {
-         SetLastNtError(Status);
-         DC_UnlockDc(pDc);
-         return FALSE;
-      }
   }
 
   DC_UnlockDc(pDc);
-  return TRUE;
+  return bResult;
 }
 
 BOOL