Boost logo

Boost :

From: Richard Guenther (rguenther_at_[hidden])
Date: 2006-05-15 07:34:06


On Fri, 12 May 2006, Hartmut Kaiser wrote:

> Richard Guenther wrote:
>
> > > Not yet, but I know that this problem was on linux/gcc systems only
> > > and my main testing platform is Windows. I'll try to find a
> > linux box
> > > with gcc 4.1 istalled today.
> > >
> > > OTOH we had this problems on other gcc platforms earlier as
> > well and
> > > these went away after the fix I sent you yesterday. So I'm
> > currently a
> > > bit out of ideas.
> > >
> > > In the mean time, could you please set the
> > >
> > > #define BOOST_WAVE_BSIZE 196608
> > >
> > > in the same file you fixed yesterday to something bigger as
> > your file size?
> > > Does the error still occur?
> >
> > Raising that to 262144 makes it work. That gives me another
> > hint to where to look.
>
> Doh! Then there is something wrong with the code loading the next chunk of
> data for large files. This should be reproducible for very small files with
>
> #define BOOST_WAVE_BSIZE 16
>
> now. Is there a '\\n' backslash/newline in your file somewhere around the
> 'magic' buffer size we had?
>
> I'll have a look at this later this weekend.
> Regards Hartmut

This patch fixes it for me (again against the 1.33.1 sources). The
problem is that after doing the last buffer read with fill, s->lim is
zeroed out by the subsequent RET (identifier) as limit was not updated
after the call to fill.

Richard.

--
Richard Guenther <rguenther_at_[hidden]>
Novell / SUSE Labs
--- cpp_re.cpp.orig	2006-05-15 13:29:00.000000000 +0200
+++ cpp_re.cpp	2006-05-15 13:31:59.000000000 +0200
@@ -51,7 +50,7 @@
 #define YYCURSOR  cursor
 #define YYLIMIT   limit
 #define YYMARKER  marker
-#define YYFILL(n) {cursor = uchar_wrapper(fill(s, cursor), cursor.column);}
+#define YYFILL(n) {cursor = uchar_wrapper(fill(s, cursor), cursor.column); limit = uchar_wrapper (s->lim); }
 
 //#define RET(i)    {s->cur = cursor; return (i);}
 #define RET(i)                                                                \
@@ -187,7 +186,7 @@

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk