Commit 648204c8 authored by Owen Taylor's avatar Owen Taylor Committed by Owen Taylor
Browse files

Fix various bugs and excessive stack usage that crept in the conversion

Mon Mar 25 17:51:05 2002  Owen Taylor  <otaylor@redhat.com>

        * glib-mkenums.in (parse_entries): Fix various bugs and
        excessive stack usage that crept in the conversion from
        gtk-mkenums. (#74431)
parent a95ec87a
Mon Mar 25 17:51:05 2002 Owen Taylor <otaylor@redhat.com>
* glib-mkenums.in (parse_entries): Fix various bugs and
excessive stack usage that crept in the conversion from
gtk-mkenums. (#74431)
Mon Mar 25 17:25:57 2002 Owen Taylor <otaylor@redhat.com>
* gtype.c (g_type_free_instance): Wrap setting freed instance
......
......@@ -30,24 +30,23 @@ sub parse_entries {
my $looking_for_name = 0;
while (<$file>) {
# read lines until comment end is matched
while (m@/\*([^*]|\*[^/*])*\**$@x) {
# read lines until we have no open comments
while (m@/\*([^*]|\*(?!/))*$@) {
my $new;
defined ($new = <>) || die "Unmatched comment in $ARGV";
defined ($new = <$file>) || die "Unmatched comment in $ARGV";
$_ .= $new;
}
# strip comments w/o options
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
s@/\*(?!<)
([^*]+|\*(?!/))*
\*/@@gx;
# strip newlines
s/\n//;
s@\n@ @;
# skip empty lines
next if m@^\s*$@;
# print STDERR "xxx $_\n";
if ($looking_for_name) {
if (/^\s*(\w+)/) {
$enumname = $1;
......@@ -60,15 +59,6 @@ sub parse_entries {
my $file= "../$1";
open NEWFILE, $file or die "Cannot open include file $file: $!\n";
# read lines until comment end is matched
while (m@/\*([^*]|\*[^/*])*\**$@x) {
my $new;
defined ($new = <>) || die "Unmatched comment in $file_name";
$_ .= $new;
}
# strip comments w/o options
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
if (parse_entries (\*NEWFILE, $NEWFILE)) {
return 1;
} else {
......@@ -100,8 +90,6 @@ sub parse_entries {
@x) {
my ($name, $value, $options) = ($1,$2,$3);
# print STDERR "xxx \"$name\" \"$value\" \"$otions\"\n";
if (!defined $flags && defined $value && $value =~ /<</) {
$seenbitshift = 1;
}
......@@ -212,17 +200,17 @@ while (<>) {
$firstenum = 1; # Flag to print filename at next enum
}
# read lines until comment end is matched
while (m@/\*([^*]|\*[^/*])*\**$@x) {
# read lines until we have no open comments
while (m@/\*([^*]|\*(?!/))*$@) {
my $new;
defined ($new = <>) || die "Unmatched comment in $ARGV";
$_ .= $new;
}
# strip comments w/o options
s@/\*[^<]([^*]|\*[^/*])*\**\*/@@gx;
# print STDERR "xxx $_\n";
s@/\*(?!<)
([^*]+|\*(?!/))*
\*/@@gx;
if (m@^\s*typedef\s+enum\s*
({)?\s*
(?:/\*<
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment