diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-12-04 10:24:56 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:22 -0800 |
commit | 86581a1ad011e831dfb512b48371a23d4636d871 (patch) | |
tree | 396219291629581f9795c0babdedcb9b146dc70d | |
parent | d013b39d8730e1c0c5f303db3d2ac8d968a4e94c (diff) |
update environ code to use globals properly
-rw-r--r-- | src/library.js | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/library.js b/src/library.js index 243e8f6f..c6adfd6f 100644 --- a/src/library.js +++ b/src/library.js @@ -3879,9 +3879,10 @@ LibraryManager.library = { _free(temp); }, - environ: null, - __environ: null, - __buildEnvironment__deps: ['environ', '__environ'], + environ: 'allocate(1, "i32*", ALLOC_STACK)', + __environ__deps: ['environ'], + __environ: '_environ', + __buildEnvironment__deps: ['__environ'], __buildEnvironment: function(env) { // WARNING: Arbitrary limit! var MAX_ENV_VALUES = 64; @@ -3890,7 +3891,8 @@ LibraryManager.library = { // Statically allocate memory for the environment. var poolPtr; var envPtr; - if (_environ === null) { + if (!___buildEnvironment.called) { + ___buildEnvironment.called = true; // Set default values. Use string keys for Closure Compiler compatibility. ENV['USER'] = 'root'; ENV['PATH'] = '/'; @@ -3903,9 +3905,7 @@ LibraryManager.library = { envPtr = allocate(MAX_ENV_VALUES * {{{ Runtime.QUANTUM_SIZE }}}, 'i8*', ALLOC_STATIC); {{{ makeSetValue('envPtr', '0', 'poolPtr', 'i8*') }}} - _environ = allocate([envPtr], 'i8**', ALLOC_STATIC); - // Set up global variable alias. - ___environ = _environ; + {{{ makeSetValue('_environ', 0, 'envPtr', 'i8*') }}}; } else { envPtr = {{{ makeGetValue('_environ', '0', 'i8**') }}}; poolPtr = {{{ makeGetValue('envPtr', '0', 'i8*') }}}; |