summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-06-10 17:54:16 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-06-10 17:54:16 +0000
commitebcec164c1c074a4db8c6087d0358c06eb678ad9 (patch)
tree03acc84b875b0676ce9f0a009d29fb6787d5fde8
parent065abe4ee96054e270825c8f534f7ba39a32d949 (diff)
downloadMPC-ebcec164c1c074a4db8c6087d0358c06eb678ad9.tar.gz
ChangeLogTag: Tue Jun 10 12:50:16 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--modules/ProjectCreator.pm19
1 files changed, 12 insertions, 7 deletions
diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm
index e3f9a5b1..c2c7697f 100644
--- a/modules/ProjectCreator.pm
+++ b/modules/ProjectCreator.pm
@@ -159,6 +159,7 @@ sub new {
$self->{'pctype'} = $self->extractType("$self");
$self->{'defaulted'} = {};
$self->{'custom_types'} = {};
+ $self->{'parents_read'} = {};
$self->{'feature_parser'} = new FeatureParser($gfeature, $feature);
$self->{'convert_slashes'} = $self->convert_slashes();
$self->{'sort_files'} = $self->sort_files();
@@ -253,6 +254,7 @@ sub parse_line {
$self->{'special_supplied'} = {};
$self->{'type_specific_assign'} = {};
$self->{'flag_overrides'} = {};
+ $self->{'parents_read'} = {};
$self->reset_generating_types();
}
}
@@ -307,13 +309,16 @@ sub parse_line {
}
if ($status) {
- ## Begin reading the parent
- push(@{$self->{'reading_parent'}}, $file);
- $status = $self->parse_file($file);
- pop(@{$self->{'reading_parent'}});
-
- if (!$status) {
- $errorString = "ERROR: Invalid parent: $parent";
+ if (!defined $self->{'parents_read'}->{$file}) {
+ $self->{'parents_read'}->{$file} = 1;
+ ## Begin reading the parent
+ push(@{$self->{'reading_parent'}}, $file);
+ $status = $self->parse_file($file);
+ pop(@{$self->{'reading_parent'}});
+
+ if (!$status) {
+ $errorString = "ERROR: Invalid parent: $parent";
+ }
}
}
}