[Top][All Lists]

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

Re: lynx-dev some trial changes to dev. 15 (relayed from Hiroyuki Senshu

From: Klaus Weide
Subject: Re: lynx-dev some trial changes to dev. 15 (relayed from Hiroyuki Senshu)
Date: Fri, 19 Nov 1999 06:39:42 -0600 (CST)

On Fri, 19 Nov 1999, Henry Nelson wrote:

> The following change to HTString.c is absolutely necessary to run Lynx on
> Windows NT.  Without this change occasional memory access errors occur.  

The underlying problem should be solved (which would be wrong use of
HTSprintf0), instead of just hiding the symptoms.  See

I would assume that somewhere, in code #ifdef'd for Windows, HTSprintf0
is used wrong.

> If
> you alternately enter 'i' and 'v' you can reproduce the problem on Windows NT.

So that might give a hint where to look.

Or compile a version with memory leak tracking enabled (*possibly*
disabling LY_FIND_LEAKS_EXTENDED in LYLeaks.h)  [with or without the
change below? - I'm not sure], and see where the leaks turn up.

> What is strange is that the problem does not occur on Windows 95/98.

Not all systems react to invalid accesses in the same way, some are
more sensitive than others...  that happens in the Unix world, too.
If the problem doesn't show on some system that doesn't mean it
isn't there.

> [Does this need defferent ifdeffing, or does some portable alternative need
> to be devised?  It was causing memory leaks in some other port?]

It should be causing memory leaks nearly everywhere.  A lot of them if
you are viewing file listings controlled by LIST_FORMAT.

> diff -ur lynx283.d15/WWW/Library/Implementation/HTString.c 
> lynx283.w32/WWW/Library/Implementation/HTString.c
> --- lynx283.d15/WWW/Library/Implementation/HTString.c Thu Nov 04 11:41:38 1999
> +++ lynx283.w32/WWW/Library/Implementation/HTString.c Thu Nov 18 15:07:14 1999
> @@ -833,6 +833,10 @@
>           result = *pstr;
>       } else
>  #endif /* USE_VASPRINTF */
> +#if defined(_WINDOWS)        /* 1999/11/05 (Fri) 17:19:38 */
> +     if (pstr != 0)          /* !!! */
> +         *pstr = 0;
> +#endif
>       result = StrAllocVsprintf(pstr, 0, fmt, &ap);
>      }
>      va_end(ap);


reply via email to

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