search for: stackblocksize

Displaying 8 results from an estimated 8 matches for "stackblocksize".

2020 Mar 28
0
[klibc:update-dash] dash: memalloc: Add growstackto helper
...c.c +++ b/usr/dash/exec.c @@ -195,9 +195,7 @@ padvance(const char **path, const char *name) start = *path; for (p = start ; *p && *p != ':' && *p != '%' ; p++); len = p - start + strlen(name) + 2; /* "2" is for '/' and '\0' */ - while (stackblocksize() < len) - growstackblock(); - q = stackblock(); + q = growstackto(len); if (p != start) { memcpy(q, start, p - start); q += p - start; diff --git a/usr/dash/memalloc.c b/usr/dash/memalloc.c index d8e4413d..9d1de74a 100644 --- a/usr/dash/memalloc.c +++ b/usr/dash/memalloc.c @@ -265,6 +2...
2020 Mar 28
0
[klibc:update-dash] dash: memalloc: Avoid looping in growstackto
...f space"); - if (newlen < 128) - newlen += 128; + min = SHELL_ALIGN(min | 128); + if (newlen < min) + newlen += min; if (stacknxt == stackp->space && stackp != &stackbase) { struct stack_block *sp; @@ -261,15 +261,15 @@ void * growstackstr(void) { size_t len = stackblocksize(); - growstackblock(); + + growstackblock(0); return stackblock() + len; } char *growstackto(size_t len) { - while (stackblocksize() < len) - growstackblock(); - + if (stackblocksize() < len) + growstackblock(len); return stackblock(); } diff --git a/usr/dash/memalloc.h b/usr/da...
2019 Jan 25
0
[klibc:update-dash] [BUILTIN] Handle embedded NULs correctly in printf
...sprintf(char **sp, size_t size, const char *f, va_list ap) +{ + char *s; + int len; + va_list ap2; + + va_copy(ap2, ap); + len = xvsnprintf(*sp, size, f, ap2); + va_end(ap2); + if (len < 0) + sh_error("xvsnprintf failed"); + if (len < size) + return len; + + s = stalloc((len >= stackblocksize() ? len : stackblocksize()) + 1); + *sp = s; + len = xvsnprintf(s, len + 1, f, ap); + return len; +} + + +int xasprintf(char **sp, const char *f, ...) +{ + va_list ap; + int ret; + + va_start(ap, f); + ret = xvasprintf(sp, 0, f, ap); + va_end(ap); + return ret; +} + + #ifndef USE_GLIBC_STDIO void...
2020 Mar 28
0
[klibc:update-dash] dash: [BUILTIN] Handle embedded NULs correctly in printf
...sprintf(char **sp, size_t size, const char *f, va_list ap) +{ + char *s; + int len; + va_list ap2; + + va_copy(ap2, ap); + len = xvsnprintf(*sp, size, f, ap2); + va_end(ap2); + if (len < 0) + sh_error("xvsnprintf failed"); + if (len < size) + return len; + + s = stalloc((len >= stackblocksize() ? len : stackblocksize()) + 1); + *sp = s; + len = xvsnprintf(s, len + 1, f, ap); + return len; +} + + +int xasprintf(char **sp, const char *f, ...) +{ + va_list ap; + int ret; + + va_start(ap, f); + ret = xvasprintf(sp, 0, f, ap); + va_end(ap); + return ret; +} + + #ifndef USE_GLIBC_STDIO void...
2019 Jan 25
0
[klibc:update-dash] input: Fix here-document redirection with vi/emacs on
.../usr/dash/input.c b/usr/dash/input.c index 06c08d49..e53423c5 100644 --- a/usr/dash/input.c +++ b/usr/dash/input.c @@ -147,8 +147,12 @@ retry: static const char *rl_cp; static int el_len; - if (rl_cp == NULL) + if (rl_cp == NULL) { + struct stackmark smark; + pushstackmark(&smark, stackblocksize()); rl_cp = el_gets(el, &el_len); + popstackmark(&smark); + } if (rl_cp == NULL) nr = 0; else {
2020 Mar 28
0
[klibc:update-dash] dash: input: Fix here-document redirection with vi/emacs on
.../usr/dash/input.c b/usr/dash/input.c index 06c08d49..e53423c5 100644 --- a/usr/dash/input.c +++ b/usr/dash/input.c @@ -147,8 +147,12 @@ retry: static const char *rl_cp; static int el_len; - if (rl_cp == NULL) + if (rl_cp == NULL) { + struct stackmark smark; + pushstackmark(&smark, stackblocksize()); rl_cp = el_gets(el, &el_len); + popstackmark(&smark); + } if (rl_cp == NULL) nr = 0; else {
2020 Mar 28
0
[klibc:update-dash] dash: parser: Save/restore here-documents in command substitution
...om old file again, ignoring any pushed back - * tokens left from the backquote parsing - */ - popfile(); + /* Start reading from old file again. */ + popfile(); + /* Ignore any pushed back tokens left from the backquote parsing. */ + if (oldstyle) tokpushback = 0; - } while (stackblocksize() <= savelen) growstackblock(); STARTSTACKSTR(out);
2012 Jul 02
0
[klibc:master] [MEMALLOC] Avoid clang warning about dead store to "size"
...1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/usr/dash/memalloc.c b/usr/dash/memalloc.c index 9fea067..d8e4413 100644 --- a/usr/dash/memalloc.c +++ b/usr/dash/memalloc.c @@ -273,7 +273,7 @@ char * makestrspace(size_t newlen, char *p) { size_t len = p - stacknxt; - size_t size = stackblocksize(); + size_t size; for (;;) { size_t nleft;