Skip to content

Commit 30c6c4d

Browse files
authored
Only export selected data addresses on the Module object (#25576)
Just like for other types of symbols we don't want to export symbols on the `Module` object itself if they user requested this. Also, fix the memory profiler to not depend the external export of `__heap_base` but instead the internal version (like it does for `_sbrk` and other dependencies.
1 parent 53ecc30 commit 30c6c4d

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/memoryprofiler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ var emscriptenMemoryProfiler = {
502502
html += '. STACK_MAX: ' + toHex(stackMax, width) + '.';
503503
html += '<br />STACK memory area used now (should be zero): ' + self.formatBytes(stackBase - stackCurrent) + '.' + colorBar('#FFFF00') + ' STACK watermark highest seen usage (approximate lower-bound!): ' + self.formatBytes(stackBase - self.stackTopWatermark);
504504

505-
var heap_base = Module['___heap_base'];
505+
var heap_base = ___heap_base;
506506
var heap_end = _sbrk({{{ to64('0') }}});
507507
html += "<br />DYNAMIC memory area size: " + self.formatBytes(heap_end - heap_base);
508508
html += ". start: " + toHex(heap_base, width);

test/test_core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8593,8 +8593,8 @@ def test_memprof_requirements(self):
85938593
assert(typeof _emscripten_stack_get_base === 'function');
85948594
assert(typeof _emscripten_stack_get_end === 'function');
85958595
assert(typeof _emscripten_stack_get_current === 'function');
8596-
assert(typeof Module['___heap_base'] === 'number');
8597-
assert(Module['___heap_base'] > 0);
8596+
assert(typeof ___heap_base === 'number');
8597+
assert(___heap_base > 0);
85988598
out('able to run memprof');
85998599
}
86008600
};

tools/emscripten.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,10 @@ def create_data_exports(data_exports):
285285
if settings.RELOCATABLE:
286286
v += settings.GLOBAL_BASE
287287
mangled = asmjs_mangle(k)
288-
if settings.MINIMAL_RUNTIME:
289-
lines.append("var %s = %s;" % (mangled, v))
290-
else:
288+
if should_export(mangled) and not settings.MINIMAL_RUNTIME:
291289
lines.append("var %s = Module['%s'] = %s;" % (mangled, mangled, v))
290+
else:
291+
lines.append("var %s = %s;" % (mangled, v))
292292

293293
return '\n'.join(lines)
294294

0 commit comments

Comments
 (0)