On Fri, 2011-07-01 at 18:59 +0200, Julien Nabet wrote:
> Le 30/06/2011 14:26, Nigel Hawkins a écrit :
> > On Wed, 2011-06-29 at 23:26 +0200, Julien Nabet wrote:
> >> diff --git a/sal/qa/osl/process/osl_process.cxx
> >> b/sal/qa/osl/process/osl_process.cxx
> >> index 2535c4c..8695d79 100644
> >> --- a/sal/qa/osl/process/osl_process.cxx
> >> +++ b/sal/qa/osl/process/osl_process.cxx
> >> @@ -477,6 +477,7 @@ public:
> >>            );
> >>
> >>            std::string line;
> >> +       line.reserve(10000);
> >>            while (std::getline(file, line, '\0'))
> >>                env_container->push_back(line);
> >>            tidy_container(*env_container);
> > That change fixes the problem here.
> Hello,
> 
> Can i push this patch as a workaround or do you think about a better 
> solution ?

Presumably this works because the string is sufficiently big that it
doesn't need to be resized by getline so some realloc is skipped in the
other chunk of code compiled with different and apparently incompatible
settings.

Seeing as this thread is dragging on and and we don't have a stand-alone
reproducer to blame on anyone in particular, feel free to stick a
reserve in here. Pick a number that's a reasonably small power of 2
which works for you, e.g. 1024, 4096, 8192 or something and we can
justify it as a micro-optimization :-)

C.

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to