diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 14 | ||||
-rw-r--r-- | src/binaryen-c.h | 2 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 5 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index d0c672abd..3d311f5bd 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -3722,6 +3722,20 @@ size_t BinaryenGetMemorySegmentByteLength(BinaryenModuleRef module, const Memory::Segment& segment = wasm->memory.segments[id]; return segment.data.size(); } +int BinaryenGetMemorySegmentPassive(BinaryenModuleRef module, + BinaryenIndex id) { + if (tracing) { + std::cout << " BinaryenGetMemorySegmentPassive(the_module, " << id + << ");\n"; + } + + auto* wasm = (Module*)module; + if (wasm->memory.segments.size() <= id) { + Fatal() << "invalid segment id."; + } + const Memory::Segment& segment = wasm->memory.segments[id]; + return segment.isPassive; +} void BinaryenCopyMemorySegmentData(BinaryenModuleRef module, BinaryenIndex id, char* buffer) { diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 067812438..d4ea9ccfa 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -1220,6 +1220,8 @@ BINARYEN_API uint32_t BinaryenGetMemorySegmentByteOffset(BinaryenModuleRef module, BinaryenIndex id); BINARYEN_API size_t BinaryenGetMemorySegmentByteLength(BinaryenModuleRef module, BinaryenIndex id); +BINARYEN_API int BinaryenGetMemorySegmentPassive(BinaryenModuleRef module, + BinaryenIndex id); BINARYEN_API void BinaryenCopyMemorySegmentData(BinaryenModuleRef module, BinaryenIndex id, char* buffer); diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 54f21ed07..5857c21c9 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -2212,7 +2212,7 @@ function wrapModule(module, self) { } self['getMemorySegmentInfoByIndex'] = function(id) { return { - 'byteOffset': Module['_BinaryenGetMemorySegmentByteOffset'](module, id), + 'offset': Module['_BinaryenGetMemorySegmentByteOffset'](module, id), 'data': (function(){ var size = Module['_BinaryenGetMemorySegmentByteLength'](module, id); var ptr = _malloc(size); @@ -2221,7 +2221,8 @@ function wrapModule(module, self) { res.set(new Uint8Array(buffer, ptr, size)); _free(ptr); return res.buffer; - })() + })(), + 'passive': Boolean(Module['_BinaryenGetMemorySegmentPassive'](module, id)) }; } self['setStart'] = function(start) { |