Jinoh Kang : riched20: Add back-reference to outer ME_Run from struct re_object.

Alexandre Julliard julliard at winehq.org
Mon Mar 21 17:20:24 CDT 2022


Module: wine
Branch: master
Commit: 05796c4e2a4acb91e6035c536b4d0e1f7e16896d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=05796c4e2a4acb91e6035c536b4d0e1f7e16896d

Author: Jinoh Kang <jinoh.kang.kr at gmail.com>
Date:   Mon Mar 21 04:37:55 2022 +0900

riched20: Add back-reference to outer ME_Run from struct re_object.

Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/riched20/caret.c   | 5 +++--
 dlls/riched20/editstr.h | 2 ++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 6d32776e3d2..c8658098e18 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -442,7 +442,7 @@ BOOL ME_DeleteTextAtCursor(ME_TextEditor *editor, int nCursor, int nChars)
                                nChars, FALSE);
 }
 
-static struct re_object* create_re_object(const REOBJECT *reo)
+static struct re_object* create_re_object(const REOBJECT *reo, ME_Run *run)
 {
   struct re_object *reobj = heap_alloc(sizeof(*reobj));
 
@@ -452,6 +452,7 @@ static struct re_object* create_re_object(const REOBJECT *reo)
     return NULL;
   }
   ME_CopyReObject(&reobj->obj, reo, REO_GETOBJ_ALL_INTERFACES);
+  reobj->run = run;
   return reobj;
 }
 
@@ -477,7 +478,7 @@ void editor_insert_oleobj(ME_TextEditor *editor, const REOBJECT *reo)
 
   run = run_insert( editor, cursor, style, &space, 1, MERF_GRAPHICS );
 
-  run->reobj = create_re_object( reo );
+  run->reobj = create_re_object( reo, run );
 
   prev = run;
   while ((prev = run_prev_all_paras( prev )))
diff --git a/dlls/riched20/editstr.h b/dlls/riched20/editstr.h
index 889795de189..3b166234f23 100644
--- a/dlls/riched20/editstr.h
+++ b/dlls/riched20/editstr.h
@@ -147,11 +147,13 @@ typedef enum {
 /******************************** structures *************************/
 
 struct tagME_DisplayItem;
+struct tagME_Run;
 
 struct re_object
 {
   struct list entry;
   REOBJECT obj;
+  struct tagME_Run *run; /* ptr to the reobj's run */
 };
 
 typedef struct tagME_Run




More information about the wine-cvs mailing list