*** _sre.c.bak Sun Jun 22 22:12:18 2003 --- _sre.c Sun Jun 22 21:42:55 2003 *************** *** 935,945 **** TRACE(("|%p|%p|GROUPREF %d\n", pattern, ptr, pattern[0])); i = pattern[0]; { int groupref = i+i; if (groupref >= state->lastmark) return 0; ! SRE_CHAR* p = (SRE_CHAR*) state->mark[groupref]; ! SRE_CHAR* e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) return 0; while (p < e) { --- 935,947 ---- TRACE(("|%p|%p|GROUPREF %d\n", pattern, ptr, pattern[0])); i = pattern[0]; { + SRE_CHAR* p; + SRE_CHAR* e; int groupref = i+i; if (groupref >= state->lastmark) return 0; ! p = (SRE_CHAR*) state->mark[groupref]; ! e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) return 0; while (p < e) { *************** *** 956,966 **** TRACE(("|%p|%p|GROUPREF_IGNORE %d\n", pattern, ptr, pattern[0])); i = pattern[0]; { int groupref = i+i; if (groupref >= state->lastmark) return 0; ! SRE_CHAR* p = (SRE_CHAR*) state->mark[groupref]; ! SRE_CHAR* e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) return 0; while (p < e) { --- 958,970 ---- TRACE(("|%p|%p|GROUPREF_IGNORE %d\n", pattern, ptr, pattern[0])); i = pattern[0]; { + SRE_CHAR* p; + SRE_CHAR* e; int groupref = i+i; if (groupref >= state->lastmark) return 0; ! p = (SRE_CHAR*) state->mark[groupref]; ! e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) return 0; while (p < e) { *************** *** 978,990 **** /* codeyes codeno ... */ i = pattern[0]; { int groupref = i+i; if (groupref >= state->lastmark) { pattern += pattern[1]; break; } ! SRE_CHAR* p = (SRE_CHAR*) state->mark[groupref]; ! SRE_CHAR* e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) { pattern += pattern[1]; break; --- 982,996 ---- /* codeyes codeno ... */ i = pattern[0]; { + SRE_CHAR* p; + SRE_CHAR* e; int groupref = i+i; if (groupref >= state->lastmark) { pattern += pattern[1]; break; } ! p = (SRE_CHAR*) state->mark[groupref]; ! e = (SRE_CHAR*) state->mark[groupref+1]; if (!p || !e || e < p) { pattern += pattern[1]; break;