1.1 --- a/templates/native/buffer.c Sun Feb 12 23:24:42 2017 +0100
1.2 +++ b/templates/native/buffer.c Mon Feb 13 18:54:59 2017 +0100
1.3 @@ -37,7 +37,7 @@
1.4
1.5 /* Calculate the size of the string. */
1.6 for (i = 0; i < data->size; i++)
1.7 - size += strlen(__load_via_object(data->attrs[i].value, __pos___data__).strvalue);
1.8 + size += __load_via_object(data->attrs[i].value, __pos___size__).intvalue;
1.9
1.10 /* Reserve space for a new string. */
1.11 s = (char *) __ALLOCATE(size + 1, sizeof(char));
1.12 @@ -46,13 +46,13 @@
1.13 for (i = 0, j = 0; i < data->size; i++)
1.14 {
1.15 o = __load_via_object(data->attrs[i].value, __pos___data__);
1.16 - n = strlen(o.strvalue);
1.17 + n = __load_via_object(data->attrs[i].value, __pos___size__).intvalue;
1.18 memcpy(s + j, o.strvalue, n); /* does not null terminate but final byte should be zero */
1.19 j += n;
1.20 }
1.21
1.22 /* Return a new string. */
1.23 - return __new_str(s);
1.24 + return __new_str(s, size);
1.25 }
1.26
1.27 /* Module initialisation. */