Ticket #4191: patch_basic_regex_creator.patch

File patch_basic_regex_creator.patch, 2.1 KB (added by anonymous, 12 years ago)
  • .hpp

    old new  
    769769      case syntax_element_assert_backref:
    770770         {
    771771            // just check that the index is valid:
    772             int id = static_cast<const re_brace*>(state)->index;
    773             if(id < 0)
     772            int idstate = static_cast<const re_brace*>(state)->index;
     773            if(idstate < 0)
    774774            {
    775                id = -id-1;
    776                if(id >= 10000)
     775               idstate = -idstate-1;
     776               if(idstate >= 10000)
    777777               {
    778                   id = m_pdata->get_id(id);
    779                   if(id <= 0)
     778                  idstate = m_pdata->get_id(idstate);
     779                  if(idstate <= 0)
    780780                  {
    781781                     // check of sub-expression that doesn't exist:
    782782                     if(0 == this->m_pdata->m_status) // update the error code if not already set
     
    804804         {
    805805            bool ok = false;
    806806            re_syntax_base* p = base;
    807             int id = static_cast<re_jump*>(state)->alt.i;
    808             if(id > 10000)
    809                id = m_pdata->get_id(id);
     807            int idstate = static_cast<re_jump*>(state)->alt.i;
     808            if(idstate > 10000)
     809               idstate = m_pdata->get_id(idstate);
    810810            while(p)
    811811            {
    812                if((p->type == syntax_element_startmark) && (static_cast<re_brace*>(p)->index == id))
     812               if((p->type == syntax_element_startmark) && (static_cast<re_brace*>(p)->index == idstate))
    813813               {
    814814                  //
    815815                  // We've found the target of the recursion, set the jump target:
     
    833833                        next_rep_id = static_cast<re_repeat*>(p)->state_id;
    834834                        break;
    835835                     case syntax_element_endmark:
    836                         if(static_cast<const re_brace*>(p)->index == id)
     836                        if(static_cast<const re_brace*>(p)->index == idstate)
    837837                           next_rep_id = -1;
    838838                        break;
    839839                     default: