Aric Stewart : user32: Early versions of usp10 are not well behaved with ScriptString_pSize when SCRIPT_STRING_ANALYSIS is NULL .

Alexandre Julliard julliard at winehq.org
Tue Nov 1 13:23:25 CDT 2011


Module: wine
Branch: master
Commit: 64adeb0285805304f36c4a81eb908acb4fc88932
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=64adeb0285805304f36c4a81eb908acb4fc88932

Author: Aric Stewart <aric at codeweavers.com>
Date:   Tue Nov  1 10:09:37 2011 -0500

user32: Early versions of usp10 are not well behaved with ScriptString_pSize when SCRIPT_STRING_ANALYSIS is NULL.

---

 dlls/user32/edit.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index 23033b8..a0bc962 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -783,12 +783,13 @@ static void EDIT_BuildLineDefs_ML(EDITSTATE *es, INT istart, INT iend, INT delta
  */
 static void EDIT_CalcLineWidth_SL(EDITSTATE *es)
 {
-	const SIZE *size;
-
 	EDIT_UpdateUniscribeData(es, NULL, 0);
-	size = ScriptString_pSize(es->ssa);
-	if (size)
+	if (es->ssa)
+	{
+		const SIZE *size;
+		size = ScriptString_pSize(es->ssa);
 		es->text_width = size->cx;
+	}
 	else
 		es->text_width = 0;
 }
@@ -884,8 +885,9 @@ static INT EDIT_CharFromPos(EDITSTATE *es, INT x, INT y, LPBOOL after_wrap)
 		{
 			if (x)
 			{
-				const SIZE *size;
-				size = ScriptString_pSize(es->ssa);
+				const SIZE *size = NULL;
+				if (es->ssa)
+					size = ScriptString_pSize(es->ssa);
 				if (!size)
 					index = 0;
 				else if (x > size->cx)




More information about the wine-cvs mailing list