Jacek Caban : ieframe: Allow travellog buffer to grow even if we' re loading from the history.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 20 14:20:50 CDT 2015


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jul 20 14:01:13 2015 +0200

ieframe: Allow travellog buffer to grow even if we're loading from the history.

Spotted by Marcus Meissner.

---

 dlls/ieframe/dochost.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c
index c76e91c..b0d713b 100644
--- a/dlls/ieframe/dochost.c
+++ b/dlls/ieframe/dochost.c
@@ -395,25 +395,25 @@ static void update_travellog(DocHost *This)
 {
     travellog_entry_t *new_entry;
 
-    if(This->travellog.loading_pos == -1) {
-        /* Clear forward history. */
-        if(!This->travellog.log) {
-            This->travellog.log = heap_alloc(4 * sizeof(*This->travellog.log));
-            if(!This->travellog.log)
-                return;
+    if(!This->travellog.log) {
+        This->travellog.log = heap_alloc(4 * sizeof(*This->travellog.log));
+        if(!This->travellog.log)
+            return;
 
-            This->travellog.size = 4;
-        }else if(This->travellog.size < This->travellog.position+1) {
-            travellog_entry_t *new_travellog;
+        This->travellog.size = 4;
+    }else if(This->travellog.size < This->travellog.position+1) {
+        travellog_entry_t *new_travellog;
 
-            new_travellog = heap_realloc(This->travellog.log, This->travellog.size*2*sizeof(*This->travellog.log));
-            if(!new_travellog)
-                return;
+        new_travellog = heap_realloc(This->travellog.log, This->travellog.size*2*sizeof(*This->travellog.log));
+        if(!new_travellog)
+            return;
 
-            This->travellog.log = new_travellog;
-            This->travellog.size *= 2;
-        }
+        This->travellog.log = new_travellog;
+        This->travellog.size *= 2;
+    }
 
+    if(This->travellog.loading_pos == -1) {
+        /* Clear forward history. */
         while(This->travellog.length > This->travellog.position)
             free_travellog_entry(This->travellog.log + --This->travellog.length);
     }




More information about the wine-cvs mailing list