From 257a4c5ac940fe14bb85518a78fc9dba1c78b959 Mon Sep 17 00:00:00 2001 From: Siddharth Date: Wed, 22 May 2019 02:42:19 +0200 Subject: Add BinaryenModuleWriteSExpr to write a module to a string in s-expr format (#2106) Fixes #2103. --- src/binaryen-c.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/binaryen-c.h') 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); -- cgit v1.2.3