lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lynx-dev lynx2.8.3dev.4


From: Vlad Harchev
Subject: Re: lynx-dev lynx2.8.3dev.4
Date: Fri, 16 Jul 1999 08:12:21 +0500 (SAMST)

On Thu, 15 Jul 1999, T.E.Dickey wrote:

> > > >  When does core dumps happen? (How often, on which configuration, any 
> > > > files on  
> > >  
> > > On about 1/3 of the files.  It's especially noticeable on the win32 and 
> > > OS/2 ports (leading me at first to suspect my integration of HS's 
> > > changes) 
> > > but once I pinpointed it there, it took about 5 minutes to make a test 
> > > case 
> > > on Linux with ElectricFence.  (It dies in split_line near the end - your 
> > > anchor pointer's no longer valid during some usages). 
> >  
> >  Can you send me that test case (I hope it's html file) and describe these 
> 
> I ran lynx in dired mode on the lynx source tree, and visited and revisited
> the first half-dozen files.
> 
>[...]

 Ok, I witnessed crashing lynx when in dired on source tree. Here is a patch
 that fix it. It was due to the fact, that my code did initialization in
HTML_new, rather than in HText_new (thus 'last_anchor_on_previous_line'
pointed in a wrong place when viewing non-html files). Moving it there
fixes the problem. I tested it crawiling lynx source tree again - and was
unable to crash it.

 Best regards,
  -Vlad

diff -ru orig/GridText.c fixed/GridText.c
--- orig/GridText.c     Thu Jul 15 09:50:47 1999
+++ fixed/GridText.c    Fri Jul 16 07:56:28 1999
@@ -300,6 +300,15 @@
 
 PUBLIC void ht_justify_cleanup NOARGS
 {
+    wait_for_this_stacked_elt = !ok_justify
+#  ifdef USE_PSRC
+       || psrc_view
+#  endif
+       ? 30000/*MAX_NESTING*/+2 /*some unreachable value*/ : -1;
+    can_justify_here = TRUE;
+    can_justify_this_line = TRUE;
+    form_in_htext = FALSE;
+
     last_anchor_of_previous_line = NULL;
     this_line_was_splitted = FALSE;
 }
@@ -692,7 +701,10 @@
 #endif
 
     CTRACE(tfp, "GridText: start HText_new\n");
-
+    
+#ifdef EXP_JUSTIFY_ELTS    
+    ht_justify_cleanup();
+#endif
     return self;
 }
 
diff -ru orig/HTML.c fixed/HTML.c
--- orig/HTML.c Thu Jul 15 09:50:47 1999
+++ fixed/HTML.c        Fri Jul 16 08:03:03 1999
@@ -7832,19 +7832,6 @@
                     me->outUCLYhndl, me->outUCI);
 #endif
 
-#ifdef EXP_JUSTIFY_ELTS
-    wait_for_this_stacked_elt = !ok_justify
-#  ifdef USE_PSRC
-       || psrc_view
-#  endif
-       ? MAX_NESTING+2 /*some unreachable value*/ : -1;
-    can_justify_here = TRUE;
-    can_justify_this_line = TRUE;
-    form_in_htext = FALSE;
-
-    ht_justify_cleanup();
-#endif
-
     me->target = stream;
     if (stream)
        me->targetClass = *stream->isa;                 /* Copy pointers */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]