I think the substr in strnative.c is incorrectly growing the destination
string. The following is a patch to fix it. It also uses the previous
patch for function names...so it needs to be applied after that patch.
Index: strnative.c
===================================================================
RCS file: /home/perlcvs/parrot/strnative.c,v
retrieving revision 1.5
diff -u -r1.5 strnative.c
--- strnative.c 2001/09/13 08:44:08 1.5
+++ strnative.c 2001/09/13 19:57:42
@@ -26,7 +26,7 @@
/* b is now in native format */
string_grow(a, a->strlen + b->strlen);
- Sys_Memcopy(a->bufstart + a->strlen, b->bufstart, b->strlen);
+ mem_sys_memcopy(a->bufstart + a->strlen, b->bufstart, b->strlen);
a->strlen = a->bufused = a->strlen + b->strlen;
return a;
}
@@ -46,8 +46,8 @@
dest->encoding = &(Parrot_string_vtable[enc_native]);
/* Offset and length have already been "normalized" */
- string_grow(dest, src->strlen - length);
- Sys_Memcopy(dest->bufstart, src->bufstart + offset, length);
+ string_grow(dest, length);
+ mem_sys_memcopy(dest->bufstart, src->bufstart + offset, length);
dest->strlen = dest->bufused = length;
return dest;