From 9b503a0bb56b9e2e55f39d263fe79fa2f6760e78 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 23 Dec 2004 09:04:13 +0000 Subject: [PATCH] Optimize property-set.get: avoid linear search. [SVN r26579] --- v2/build/property-set.jam | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/v2/build/property-set.jam b/v2/build/property-set.jam index bd89a07af..e4016230c 100644 --- a/v2/build/property-set.jam +++ b/v2/build/property-set.jam @@ -309,7 +309,19 @@ class property-set # Returns all values of 'feature'. rule get ( feature ) { - return [ feature.get-values $(feature) : $(self.raw) ] ; + if ! $(self.map-built) + { + # For each feature, create member var and assign all + # values to it. Since all regular member vars start with + # 'self', there will be no conflicts between names. + self.map-built = true ; + for local v in $(self.raw) + { + $(v:G) += $(v:G=) ; + } + } + + return $($(feature)) ; } }