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; \ 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)
} }