summaryrefslogtreecommitdiff
path: root/src/binaryen-c.h
diff options
context:
space:
mode:
authorSiddharth <siddharth.bath@tweag.io>2019-05-22 02:42:19 +0200
committerAlon Zakai <azakai@google.com>2019-05-21 17:42:19 -0700
commit257a4c5ac940fe14bb85518a78fc9dba1c78b959 (patch)
tree3f9a20ceea7b12fa77daf3df0b7c97185e5c3728 /src/binaryen-c.h
parent9b5e470bcef1c6934ae74457d8094143bad8d74a (diff)
downloadbinaryen-257a4c5ac940fe14bb85518a78fc9dba1c78b959.tar.gz
binaryen-257a4c5ac940fe14bb85518a78fc9dba1c78b959.tar.bz2
binaryen-257a4c5ac940fe14bb85518a78fc9dba1c78b959.zip
Add BinaryenModuleWriteSExpr to write a module to a string in s-expr format (#2106)
Fixes #2103.
Diffstat (limited to 'src/binaryen-c.h')
-rw-r--r--src/binaryen-c.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index e287e2541..ae6747cea 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -1012,6 +1012,13 @@ void BinaryenModuleAutoDrop(BinaryenModuleRef module);
size_t
BinaryenModuleWrite(BinaryenModuleRef module, char* output, size_t outputSize);
+// Serialize a module in s-expression text format.
+// @return how many bytes were written. This will be less than or equal to
+// outputSize
+size_t BinaryenModuleWriteText(BinaryenModuleRef module,
+ char* output,
+ size_t outputSize);
+
typedef struct BinaryenBufferSizes {
size_t outputBytes;
size_t sourceMapBytes;
@@ -1046,6 +1053,11 @@ BinaryenModuleAllocateAndWriteResult
BinaryenModuleAllocateAndWrite(BinaryenModuleRef module,
const char* sourceMapUrl);
+// Serialize a module in s-expression form. Implicity allocates the returned
+// char* with malloc(), and expects the user to free() them manually
+// once not needed anymore.
+char* BinaryenModuleAllocateAndWriteText(BinaryenModuleRef* module);
+
// Deserialize a module from binary form.
BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize);