exclude last paths from memcpy
This commit is contained in:
13
pike.c
13
pike.c
@@ -453,14 +453,13 @@ if (*pc < WBEG) { \
|
||||
subs[i++] = sub; \
|
||||
goto next##nn; \
|
||||
|
||||
#define save1() \
|
||||
#define saveclist() \
|
||||
newsub(for (j = 0; j < nsubp; j++) s1->sub[j] = sub->sub[j];, \
|
||||
for (j = 0; j < nsubp / 2; j++) s1->sub[j] = sub->sub[j];) \
|
||||
for (j = 0; j < nsubp / 2 - 1; j++) s1->sub[j] = sub->sub[j];) \
|
||||
|
||||
#define save2() \
|
||||
#define savenlist() \
|
||||
newsub(/*nop*/, /*nop*/) \
|
||||
for (j = 0; j < nsubp; j++) \
|
||||
s1->sub[j] = sub->sub[j]; \
|
||||
for (j = 0; j < nsubp; j++) s1->sub[j] = sub->sub[j]; \
|
||||
|
||||
#define addthread(nn, list, listidx, _pc, _sub) \
|
||||
{ \
|
||||
@@ -503,7 +502,7 @@ for (j = 0; j < nsubp; j++) \
|
||||
case SAVE: \
|
||||
if (sub->ref > 1) { \
|
||||
sub->ref--; \
|
||||
save##nn() \
|
||||
save##list() \
|
||||
sub = s1; \
|
||||
sub->ref = 1; \
|
||||
} \
|
||||
@@ -595,7 +594,7 @@ int re_pikevm(rcode *prog, const char *s, const char **subp, int nsubp)
|
||||
if (matched) {
|
||||
for (i = 0, j = i; i < nsubp; i+=2, j++) {
|
||||
subp[i] = matched->sub[j];
|
||||
subp[i+1] = matched->sub[j+(nsubp/2)];
|
||||
subp[i+1] = matched->sub[nsubp / 2 + j];
|
||||
}
|
||||
_return(1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user