aboutsummaryrefslogtreecommitdiffstats
path: root/android
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2017-02-07 05:47:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-02-07 05:47:26 +0000
commitae853ae0c018400070e73464e7a952acf556c68e (patch)
tree570c7d1969e40bacd047f04bd544c1239b78e79d /android
parentd9f6fa28d681de1051adcddb5aef293e02bcc60e (diff)
parentc0d58b4a0fa6ecd8cfc5e2cb15eabca29b9742a6 (diff)
downloadbuild_soong-ae853ae0c018400070e73464e7a952acf556c68e.tar.gz
build_soong-ae853ae0c018400070e73464e7a952acf556c68e.tar.bz2
build_soong-ae853ae0c018400070e73464e7a952acf556c68e.zip
Merge "Fix envDeps initialization and locking"
Diffstat (limited to 'android')
-rw-r--r--android/config.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/android/config.go b/android/config.go
index 36034775..76635b39 100644
--- a/android/config.go
+++ b/android/config.go
@@ -177,7 +177,6 @@ func NewConfig(srcDir, buildDir string) (Config, error) {
srcDir: srcDir,
buildDir: buildDir,
- envDeps: make(map[string]string),
deviceConfig: &deviceConfig{},
}
@@ -281,6 +280,10 @@ func (c *config) Getenv(key string) string {
var val string
var exists bool
c.envLock.Lock()
+ defer c.envLock.Unlock()
+ if c.envDeps == nil {
+ c.envDeps = make(map[string]string)
+ }
if val, exists = c.envDeps[key]; !exists {
if c.envFrozen {
panic("Cannot access new environment variables after envdeps are frozen")
@@ -288,7 +291,6 @@ func (c *config) Getenv(key string) string {
val = os.Getenv(key)
c.envDeps[key] = val
}
- c.envLock.Unlock()
return val
}
@@ -312,8 +314,8 @@ func (c *config) IsEnvFalse(key string) bool {
func (c *config) EnvDeps() map[string]string {
c.envLock.Lock()
+ defer c.envLock.Unlock()
c.envFrozen = true
- c.envLock.Unlock()
return c.envDeps
}