hush: use mempcpy where useful

function                                             old     new   delta
o_addblock                                            58      42     -16
expand_one_var                                      1618    1555     -63
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-79)             Total: -79 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-07-24 02:17:05 +02:00
parent 94af83eb8d
commit 0675b03de4

View File

@ -2662,9 +2662,8 @@ static void o_delchr(o_string *o)
static void o_addblock(o_string *o, const char *str, int len) static void o_addblock(o_string *o, const char *str, int len)
{ {
o_grow_by(o, len); o_grow_by(o, len);
memcpy(&o->data[o->length], str, len); ((char*)mempcpy(&o->data[o->length], str, len))[0] = '\0';
o->length += len; o->length += len;
o->data[o->length] = '\0';
} }
static void o_addstr(o_string *o, const char *str) static void o_addstr(o_string *o, const char *str)
@ -5519,17 +5518,15 @@ static char *replace_pattern(char *val, const char *pattern, const char *repl, c
break; break;
result = xrealloc(result, res_len + (s - val) + repl_len + 1); result = xrealloc(result, res_len + (s - val) + repl_len + 1);
memcpy(result + res_len, val, s - val); strcpy(mempcpy(result + res_len, val, s - val), repl);
res_len += s - val; res_len += (s - val) + repl_len;
strcpy(result + res_len, repl);
res_len += repl_len;
debug_printf_varexp("val:'%s' s:'%s' result:'%s'\n", val, s, result); debug_printf_varexp("val:'%s' s:'%s' result:'%s'\n", val, s, result);
val = s + size; val = s + size;
if (exp_op == '/') if (exp_op == '/')
break; break;
} }
if (val[0] && result) { if (*val && result) {
result = xrealloc(result, res_len + strlen(val) + 1); result = xrealloc(result, res_len + strlen(val) + 1);
strcpy(result + res_len, val); strcpy(result + res_len, val);
debug_printf_varexp("val:'%s' result:'%s'\n", val, result); debug_printf_varexp("val:'%s' result:'%s'\n", val, result);