/[pcre]/code/trunk/pcre_jit_compile.c
ViewVC logotype

Diff of /code/trunk/pcre_jit_compile.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 973 by zherczeg, Sun May 27 05:28:19 2012 UTC revision 974 by zherczeg, Sat Jun 2 05:56:58 2012 UTC
# Line 5020  if (ket == OP_KETRMAX) Line 5020  if (ket == OP_KETRMAX)
5020        BACKTRACK_AS(bracket_backtrack)->alttrypath = LABEL();        BACKTRACK_AS(bracket_backtrack)->alttrypath = LABEL();
5021      /* Checking zero-length iteration. */      /* Checking zero-length iteration. */
5022      if (opcode != OP_ONCE)      if (opcode != OP_ONCE)
5023          {
5024        CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STR_PTR, 0, rmaxlabel);        CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STR_PTR, 0, rmaxlabel);
5025          /* Drop STR_PTR for greedy plus quantifier. */
5026          if (bra != OP_BRAZERO)
5027            free_stack(common, 1);
5028          }
5029      else      else
5030        /* TMP2 must contain the starting STR_PTR. */        /* TMP2 must contain the starting STR_PTR. */
5031        CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, rmaxlabel);        CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, rmaxlabel);
# Line 6154  if (SLJIT_UNLIKELY(opcode == OP_ONCE_NC) Line 6159  if (SLJIT_UNLIKELY(opcode == OP_ONCE_NC)
6159    
6160  if (ket == OP_KETRMAX)  if (ket == OP_KETRMAX)
6161    {    {
6162    if (bra != OP_BRAZERO)    if (bra == OP_BRAZERO)
     free_stack(common, 1);  
   else  
6163      {      {
6164      OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));      OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
6165      free_stack(common, 1);      free_stack(common, 1);
# Line 6450  else if (opcode == OP_ONCE) Line 6453  else if (opcode == OP_ONCE)
6453  if (ket == OP_KETRMAX)  if (ket == OP_KETRMAX)
6454    {    {
6455    OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));    OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
6456      if (bra != OP_BRAZERO)
6457        free_stack(common, 1);
6458    CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursivetrypath);    CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursivetrypath);
6459    if (bra == OP_BRAZERO)    if (bra == OP_BRAZERO)
6460      {      {
6461      OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));      OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
6462      JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_backtrack)->zerotrypath);      JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_backtrack)->zerotrypath);
6463      JUMPHERE(brazero);      JUMPHERE(brazero);
6464        free_stack(common, 1);
6465      }      }
   free_stack(common, 1);  
6466    }    }
6467  else if (ket == OP_KETRMIN)  else if (ket == OP_KETRMIN)
6468    {    {

Legend:
Removed from v.973  
changed lines
  Added in v.974

  ViewVC Help
Powered by ViewVC 1.1.5