Still, this problem is unsolved: set I0,100000 set S0,"#" REDO: pack S1,1,S0 dec I0 print I0 print "\n" if I0,REDO end
Will core dump, because in : inline op pack(inout STR, in INT, in STR) { STRING *t,*s = $3; UINTVAL len = (UINTVAL)$2; char buf[3]; if (s->buflen < len) { t = string_make(interpreter, buf, (UINTVAL)(len - s->buflen), NULL, 0, NULL); $1 = string_concat(interpreter, $1, s, 1); } else { t = string_make(interpreter, s->bufstart, (UINTVAL)len, NULL, 0, NULL); } $1 = string_concat(interpreter, $1, t, 1); string_destroy(t); goto NEXT(); } t gets collected, one way to solve this is to disable the GC inside the op, but I don't know if that's the best way, thoughts? Regards, Daniel Grunblatt. On Mon, 20 May 2002, Daniel Grunblatt wrote: > > On 20 May 2002, Peter Gibbs wrote: > > > # New Ticket Created by "Peter Gibbs" > > # Please include the string: [netlabs #601] > > # in the subject line of all future correspondence about this issue. > > # <URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=601 > > > > > > > Attached is a simplified version of a previous patch to allow buffers to > > avoid collection during their formative nanoseconds. This version covers the > > basics: > > A new flag - BUFFER_neonate_FLAG > > This flag causes immunity from collection during DOD runs > > The flag is set and cleared as required in string.c (note that there may be > > more places that need flag setting, I just did a few obvious ones) > > > > This version makes no attempt to track the fact that there are newborns, or > > to kill them if they try to keep this status for too long. It therefore > > needs to be specifically used only when required. I am proposing this as an > > interim solution until we decide on the best way of handling it permanently, > > to overcome the current bugs without resorting to the performance-impacting > > method of suppressing DOD runs. > > > > A few warnings in string.c have been removed in the process, along with some > > duplicate #define's in string.h > > > > -- > > Peter Gibbs > > EmKel Systems > > > > > > Applied, thanks. > >