diff options
author | Lu Wang <coolwanglu@gmail.com> | 2013-11-27 00:08:29 +0800 |
---|---|---|
committer | Lu Wang <coolwanglu@gmail.com> | 2013-11-27 00:08:29 +0800 |
commit | d91ec3a7b38200705e11662d9d90b2c3a5f26cbd (patch) | |
tree | a34a24ce2f7fe7a840d3a76e4d6060c61894d490 | |
parent | 3e31f83ac762e34b266b7888aec161bb2b843dd1 (diff) |
Revert "use js variable for rand_seed"
This reverts commit 3e31f83ac762e34b266b7888aec161bb2b843dd1.
-rw-r--r-- | src/library.js | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/library.js b/src/library.js index 7be3eef6..d55f9c0c 100644 --- a/src/library.js +++ b/src/library.js @@ -3445,25 +3445,27 @@ LibraryManager.library = { return limit; }, - __rand_seed: 0x0273459b, + __rand_seed: 'allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC)', srand__deps: ['__rand_seed'], srand: function(seed) { - ___rand_seed = seed; + {{{ makeSetValue('___rand_seed', 0, 'seed', 'i32') }}} }, rand_r__deps: ['__rand_seed'], rand_r: function(seed) { - // calculate __rand_seed * 31010991 + 0x676e6177 + var val = {{{ makeGetValue('___rand_seed', 0, 'i32') }}}; + // calculate val * 31010991 + 0x676e6177 // i32 multiplication will be rounded by javascript - var seedh = ___rand_seed >> 16; - var seedl = ___rand_seed & 0xffff; + var valh = val >> 16; + var vall = val & 0xffff; var c = 31010991; var ch = c >> 16; var cl = c & 0xffff; - ___rand_seed = (((seedh * cl + seedl * ch) << 16) + seedl * cl + 0x676e6177) & 0x7fffffff; + val = (((valh * cl + vall * ch) << 16) + vall * cl + 0x676e6177) & 0x7fffffff; - return ___rand_seed; + {{{ makeSetValue('___rand_seed', 0, 'val', 'i32') }}} + return val; }, rand__deps: ['rand_r'], rand: function() { |