aboutsummaryrefslogtreecommitdiffstats
path: root/var.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-12 01:31:58 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-12 01:43:27 +0900
commit4e9ab1aade79776982a5eab9ab559aa3ee4907e1 (patch)
treea8bdc4f5c559b79b610970466b7a7b3b95f25ba6 /var.go
parenta9e726960016831132d7586332e8576125f7fcd6 (diff)
downloadplatform_build_kati-4e9ab1aade79776982a5eab9ab559aa3ee4907e1.tar.gz
platform_build_kati-4e9ab1aade79776982a5eab9ab559aa3ee4907e1.tar.bz2
platform_build_kati-4e9ab1aade79776982a5eab9ab559aa3ee4907e1.zip
Do not copy variables for target specific variables
167.22user 131.10system 5:27.42elapsed 91%CPU (1355792maxresident)k => 91.34user 122.72system 3:52.62elapsed 92%CPU (1180900maxresident)k repo/android.sh time kati --kati_cpuprofile=kati.prof -n
Diffstat (limited to 'var.go')
-rw-r--r--var.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/var.go b/var.go
index 72bb86a..d246b58 100644
--- a/var.go
+++ b/var.go
@@ -112,3 +112,23 @@ func (vt Vars) Merge(vt2 Vars) {
vt[k] = v
}
}
+
+type oldVar struct {
+ name string
+ value Var
+}
+
+func newOldVar(vars Vars, name string) oldVar {
+ return oldVar{
+ name: name,
+ value: vars.Lookup(name),
+ }
+}
+
+func (old oldVar) restore(vars Vars) {
+ if old.value.IsDefined() {
+ vars[old.name] = old.value
+ return
+ }
+ delete(vars, old.name)
+}