Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2006-07-27 07:19:14


Ovanes Markarian wrote:
> Hi!
>
> I am trying to match a function body and find out if the params or
> return type have specific class name patterns. Therefore I did a
> really huge regex... sorry if is not so readable, but I used defines
> to make as little errors as possible...

> This is the boost::regex function where it crashes:
>
> template <class BidiIterator, class Allocator, class traits>
> bool perl_matcher<BidiIterator, Allocator, traits>::match_imp()
> {
> // initialise our stack if we are non-recursive:
> #ifdef BOOST_REGEX_NON_RECURSIVE
> save_state_init init(&m_stack_base, &m_backup_state);
> used_block_count = BOOST_REGEX_MAX_BLOCKS;
> #if !defined(BOOST_NO_EXCEPTIONS)
> try{
> #endif
> #endif
>
> // reset our state machine:
> position = base;
> search_base = base;
> state_count = 0;
> m_match_flags |= regex_constants::match_all;
>
> //LINE 162 perl_matcher_common.hpp
> !!! m_presult->set_size((m_match_flags & match_nosubs) ? 1 :
> re.mark_count(), search_base, last);

> Call from this line causes access violation:
> Unhandled exception at 0x104817fd in some_app.exe: 0xC0000005: Access
> violation writing location 0x56394ab7.
>
> I re-built regex with BOOST_REGEX_MATCH_EXTRA uncommented in user.hpp.
>
>
> Would be really nice to receive some comments or suggestions.

I don't see anything obvious, if you put this together as a standalone cpp
file that I can build/reproduce the error with then I'll look into it.

John.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net