Merge "Fix envDeps initialization and locking"

am: ae853ae0c0

Change-Id: Ia837d4fe2e52c472ca2e64eab6d5dd410849e503
This commit is contained in:
Colin Cross 2017-02-07 05:50:45 +00:00 committed by android-build-merger
commit d84437067c
1 changed files with 5 additions and 3 deletions

View File

@ -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
}