Changeset 898 in ProjectBuilder for devel/pb-modules/lib/ProjectBuilder/Conf.pm
- Timestamp:
- Nov 10, 2009, 3:31:28 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb-modules/lib/ProjectBuilder/Conf.pm
r891 r898 24 24 our @EXPORT = qw(pb_conf_init pb_conf_add pb_conf_read pb_conf_read_if pb_conf_get pb_conf_get_if); 25 25 26 # Global list of conf files 27 my @pbconffiles = (); 26 # Global hash of conf files 27 # Key is the conf file name 28 # Value is its rank 29 my %pbconffiles; 30 31 # Global hash of cached values. 32 # We consider that values can not change during the life of pb 33 # my %cachedval; 28 34 29 35 =pod … … 53 59 =item B<pb_conf_init> 54 60 55 This function setup the environment PBPROJ for project-builder function usage rfom other projects.61 This function setup the environment PBPROJ for project-builder function usage from other projects. 56 62 The first parameter is the project name. 57 It sets up environ ement variables (PBPROJ)63 It sets up environment variables (PBPROJ) 58 64 59 65 =cut … … 81 87 82 88 pb_log(2,"DEBUG: pb_conf_add with ".Dumper(@_)."\n"); 83 push(@pbconffiles,@_); 89 90 foreach my $cf (@_) { 91 # Skip already used conf files 92 next if (defined $pbconffiles{$cf}); 93 # Add the new one at the end 94 my $num = keys %pbconffiles; 95 $pbconffiles{$cf} = $num; 96 } 84 97 } 85 98 … … 191 204 my $ptr = undef; 192 205 193 # the most important conf file is first, so read them in revers order194 foreach my $f (reverse @pbconffiles) {206 # the most important conf file is first, so read them in reverse order 207 foreach my $f (reverse sort { $pbconffiles{$a} <=> $pbconffiles{$b} } keys %pbconffiles) { 195 208 $ptr = pb_conf_get_fromfile_if("$f",$ptr,@param); 196 209 } … … 234 247 foreach my $i (0..$#param) { 235 248 $p1 = $ptr1[$i]; 249 # Optimisation doesn't seem useful 250 # if ((defined $p1) && (defined $cachedval{$p1})) { 251 # $ptr1[$i] = $cachedval{$p1}; 252 # next; 253 # } 236 254 $p2 = $ptr2[$i]; 237 255 # Always try to take the param from ptr1 … … 271 289 } 272 290 $ptr1[$i] = $p1; 291 # Cache values to avoid redoing all that analyze when asked again on a known value 292 # $cachedval{$p1} = $p1; 273 293 } 274 294 pb_log(2,"DEBUG: pb_conf_get output: ".Dumper(@ptr1)."\n");
Note:
See TracChangeset
for help on using the changeset viewer.