Re: [pcre-dev] Calculated match recursion stack size

Top Page
Delete this message
Author: Philip Hazel
Date:  
To: Graycode
CC: pcre-dev
Subject: Re: [pcre-dev] Calculated match recursion stack size
On Fri, 20 Jan 2012, Graycode wrote:

> The "340 bytes" result matches what I was getting with the patch, minus
> accounting for those 2 extra ints.


Good!

> I'm guessing you're compiling gcc with debug and not for release mode,


I was, and I figured that out last night. Turning off debug does change
the value with gcc, as does changing the optimization.

> pcretest.exe : fatal error LNK1120: 3 unresolved externals
>
> It turns out that pcretest also needed to be linked with pcre_tables.


Thanks for the note, but I don't understand the problem, because
pcre_tables should be linked as part of the PCRE library which you link
pcretest with.

> Unless I did something wrong in my hand-crafted build, mention of that
> may be needed in the NON-UNIX-USE document.


Perhaps you left pcre_tables out of the library build?

> This version also seems fine. With my normal MSVC build it shows:


Also good!

> This new stack calculation may provide a reasonably
> accurate estimate of where to set the match_limit_recursion such that
> there is a meaningful PCRE error code instead of dying out with a
> stack fault.


That's what I'm hoping. I will add some documentation now that I know it
seems to be working.

> If you get to a point where you feel having the stack calculation
> introduces complexity or otherwise becomes un-maintainable, then I'm
> OK with going back to hacking something into new PCRE releases for my
> own uses.


I've ended up with a pretty small patch, so I think it's OK to leave it
in.

Philip

--
Philip Hazel