29 |
|
bless $self, $class; |
30 |
|
$self->{dbfile}=shift; |
31 |
|
$self->_readdbfile($self->{dbfile}); |
32 |
+ |
$self->{projectobjects}={}; |
33 |
|
return $self; |
34 |
|
} |
35 |
|
|
47 |
|
my $index=$self->_findlocal($name,$version); |
48 |
|
if ( $index != -1 ) { |
49 |
|
my $location=$self->{projects}[$index][3]; |
50 |
+ |
if ( defined $self->{projectobjects}{$location} ) { |
51 |
+ |
$area=$self->{projectobjects}{$location}; |
52 |
+ |
} |
53 |
+ |
else { |
54 |
|
$area=Configuration::ConfigArea->new(); |
55 |
|
$self->verbose("Attempt to ressurect $name $version from $location"); |
56 |
|
if ( $area->bootstrapfromlocation($location) == 1 ) { |
59 |
|
} |
60 |
|
else { |
61 |
|
$self->verbose("area found"); |
62 |
+ |
$self->{projectobjects}{$location}=$area; |
63 |
+ |
} |
64 |
|
} |
65 |
|
} |
66 |
|
else { |