Subject: Re: PR/33392 CVS commit: src/dist/nawk
To: None <gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,>
From: Aleksey Cheusov <cheusov@tut.by>
List: netbsd-bugs
Date: 07/26/2006 17:30:03
The following reply was made to PR bin/33392; it has been noted by GNATS.
From: Aleksey Cheusov <cheusov@tut.by>
To: gnats-bugs@NetBSD.org
Cc: gnats-admin@NetBSD.org, netbsd-bugs@NetBSD.org
Subject: Re: PR/33392 CVS commit: src/dist/nawk
Date: Wed, 26 Jul 2006 20:29:32 +0300
> | > | Changes you commited to the HEAD related to this PR seems good to me,
> | > | everything works correctly and much faster than gawk (for huge
> | > | regexps) that i used for years.
> | > |
> |
> | unfortunately, there seem to be some bugs introduced by these commits.
> | I'm getting lots of junk pointer complaints from free() followed by a
> | segfault. nawk prior to these changes don't have this problem. The
> | patch Christos attached to PR/3406 makes the segfaults go away, but this
> | new nawk uses more than 10x the RAM on the same script with the same
> | input file than an older (prior to these changes) nawk.
> |
> | I can send the awk script and input file if anyone cares to dig around.
>
> I fixed all of it...
> christos
Are you sure about the following?
@@ -82,10 +82,10 @@
void *p;
int i, new_count;
- if (state < fa->state_count)
+ if (++state < fa->state_count)
return
I think ++ is unwanted
new_count = state + 10;
for (i = fa->state_count; i < new_count; ++i) {
^^^^^
...
}
fa->state_count = new_count;
--
Best regards, Aleksey Cheusov.