summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/binaryen-c.cpp14
-rw-r--r--src/binaryen-c.h2
-rw-r--r--src/js/binaryen.js-post.js5
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) {