exclude last paths from memcpy

This commit is contained in:
Kyryl Melekhin
2021-09-03 13:26:51 +00:00
parent 45b981b6a4
commit 8af2598a44

13
pike.c
View File

@@ -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)
}