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; \
|
subs[i++] = sub; \
|
||||||
goto next##nn; \
|
goto next##nn; \
|
||||||
|
|
||||||
#define save1() \
|
#define saveclist() \
|
||||||
newsub(for (j = 0; j < nsubp; j++) s1->sub[j] = sub->sub[j];, \
|
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*/) \
|
newsub(/*nop*/, /*nop*/) \
|
||||||
for (j = 0; j < nsubp; j++) \
|
for (j = 0; j < nsubp; j++) s1->sub[j] = sub->sub[j]; \
|
||||||
s1->sub[j] = sub->sub[j]; \
|
|
||||||
|
|
||||||
#define addthread(nn, list, listidx, _pc, _sub) \
|
#define addthread(nn, list, listidx, _pc, _sub) \
|
||||||
{ \
|
{ \
|
||||||
@@ -503,7 +502,7 @@ for (j = 0; j < nsubp; j++) \
|
|||||||
case SAVE: \
|
case SAVE: \
|
||||||
if (sub->ref > 1) { \
|
if (sub->ref > 1) { \
|
||||||
sub->ref--; \
|
sub->ref--; \
|
||||||
save##nn() \
|
save##list() \
|
||||||
sub = s1; \
|
sub = s1; \
|
||||||
sub->ref = 1; \
|
sub->ref = 1; \
|
||||||
} \
|
} \
|
||||||
@@ -595,7 +594,7 @@ int re_pikevm(rcode *prog, const char *s, const char **subp, int nsubp)
|
|||||||
if (matched) {
|
if (matched) {
|
||||||
for (i = 0, j = i; i < nsubp; i+=2, j++) {
|
for (i = 0, j = i; i < nsubp; i+=2, j++) {
|
||||||
subp[i] = matched->sub[j];
|
subp[i] = matched->sub[j];
|
||||||
subp[i+1] = matched->sub[j+(nsubp/2)];
|
subp[i+1] = matched->sub[nsubp / 2 + j];
|
||||||
}
|
}
|
||||||
_return(1)
|
_return(1)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user