Module: wine Branch: master Commit: 5f2d2c146c27d4ee98fe1b00a03d50220bc48f10 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5f2d2c146c27d4ee98fe1b00a0...
Author: Jacek Caban jacek@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); }