aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/library.js b/src/library.js
index 69c69745..1c7d2f50 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3302,8 +3302,9 @@ LibraryManager.library = {
_free(temp);
},
+ environ: null,
__environ: null,
- __buildEnvironment__deps: ['__environ'],
+ __buildEnvironment__deps: ['environ', '__environ'],
__buildEnvironment: function(env) {
// WARNING: Arbitrary limit!
var MAX_ENV_VALUES = 64;
@@ -3312,14 +3313,17 @@ LibraryManager.library = {
// Statically allocate memory for the environment.
var poolPtr;
var envPtr;
- if (___environ === null) {
+ if (_environ === null) {
+ // Allocate memory.
poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
envPtr = allocate(MAX_ENV_VALUES * {{{ QUANTUM_SIZE }}},
'i8*', ALLOC_STATIC);
{{{ makeSetValue('envPtr', '0', 'poolPtr', 'i8*') }}}
- ___environ = allocate([envPtr], 'i8**', ALLOC_STATIC);
+ _environ = allocate([envPtr], 'i8**', ALLOC_STATIC);
+ // Set up global variable alias.
+ ___environ = _environ;
} else {
- envPtr = {{{ makeGetValue('___environ', '0', 'i8**') }}};
+ envPtr = {{{ makeGetValue('_environ', '0', 'i8**') }}};
poolPtr = {{{ makeGetValue('envPtr', '0', 'i8*') }}};
}