Fix ghosting and double destruction
authormalc <av1474@comtv.ru>
Sat, 1 Jun 2013 22:43:03 +0000 (2 02:43 +0400)
committermalc <av1474@comtv.ru>
Sat, 1 Jun 2013 22:43:03 +0000 (2 02:43 +0400)
link.c

diff --git a/link.c b/link.c
index 196ef94..b9d07bd 100644 (file)
--- a/link.c
+++ b/link.c
@@ -2176,6 +2176,7 @@ static void droptext (struct page *page)
     }
     if (page->sheet) {
         fz_free_text_sheet (state.ctx, page->sheet);
+        page->sheet = NULL;
     }
 }
 
@@ -2455,7 +2456,9 @@ CAMLprim value ml_postprocess (value ptr_v, value hlinks_v,
         highlightslinks (page, xoff, yoff, noff, targ, tlen, hfsize);
         noff = page->slinkcount;
     }
-    showsel (page, xoff, yoff);
+    if (page->tgen == state.gen) {
+        showsel (page, xoff, yoff);
+    }
     unlock ("ml_postprocess");
 
  done: