[PATCH 2/6] usp10: Return whole SCRIPT_FONTPROPERTIES structure

Nikolay Sivov nsivov at codeweavers.com
Mon Oct 2 02:46:57 CDT 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/usp10/tests/usp10.c | 1 +
 dlls/usp10/usp10.c       | 8 +++-----
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/dlls/usp10/tests/usp10.c b/dlls/usp10/tests/usp10.c
index cd129ff394..4d8d6a7cb2 100644
--- a/dlls/usp10/tests/usp10.c
+++ b/dlls/usp10/tests/usp10.c
@@ -2515,6 +2515,7 @@ static void test_ScriptGetFontProperties(HDC hdc)
     hr = ScriptGetFontProperties(hdc,&psc,&sfp);
     ok( hr == E_INVALIDARG, "(hdc,&psc,&sfp) invalid, expected E_INVALIDARG, got %08x\n", hr);
     ok( psc != NULL, "Expected a pointer in psc, got NULL\n");
+    ok( sfp.cBytes == sizeof(SCRIPT_FONTPROPERTIES) - 1, "Unexpected cBytes.\n");
     ScriptFreeCache(&psc);
     ok( psc == NULL, "Expected psc to be NULL, got %p\n", psc);
 
diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c
index 40fc89a6b6..a1f9c15b9e 100644
--- a/dlls/usp10/usp10.c
+++ b/dlls/usp10/usp10.c
@@ -741,6 +741,8 @@ BOOL usp10_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T
 /* TODO Fix font properties on Arabic locale */
 static inline BOOL set_cache_font_properties(const HDC hdc, ScriptCache *sc)
 {
+    sc->sfp.cBytes = sizeof(sc->sfp);
+
     if (!sc->sfnt)
     {
         sc->sfp.wgBlank = sc->tm.tmBreakChar;
@@ -788,11 +790,7 @@ static inline BOOL set_cache_font_properties(const HDC hdc, ScriptCache *sc)
 
 static inline void get_cache_font_properties(SCRIPT_FONTPROPERTIES *sfp, ScriptCache *sc)
 {
-    sfp->wgBlank = sc->sfp.wgBlank;
-    sfp->wgDefault = sc->sfp.wgDefault;
-    sfp->wgInvalid = sc->sfp.wgInvalid;
-    sfp->wgKashida = sc->sfp.wgKashida;
-    sfp->iKashidaWidth = sc->sfp.iKashidaWidth;
+    *sfp = sc->sfp;
 }
 
 static inline LONG get_cache_height(SCRIPT_CACHE *psc)
-- 
2.14.2




More information about the wine-patches mailing list