diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-07-11 15:22:58 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-07-12 13:53:26 -0700 |
commit | f050b6300ceb6039d608abc20939ebf241378cdc (patch) | |
tree | 2c1f911f38b436ec4d50a8f5382730cef84d55de /src/binaryen-c.cpp | |
parent | 91e38285dc27e5dbac3291258342835fc3e90eab (diff) | |
download | binaryen-f050b6300ceb6039d608abc20939ebf241378cdc.tar.gz binaryen-f050b6300ceb6039d608abc20939ebf241378cdc.tar.bz2 binaryen-f050b6300ceb6039d608abc20939ebf241378cdc.zip |
allow multiple traces
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r-- | src/binaryen-c.cpp | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 20fefece0..89953e0ff 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -93,19 +93,7 @@ BinaryenType BinaryenFloat64(void) { return f64; } BinaryenModuleRef BinaryenModuleCreate(void) { if (tracing) { - std::cout << "// beginning a Binaryen API trace\n"; - std::cout << "#include <math.h>\n"; - std::cout << "#include <map>\n"; - std::cout << "#include \"src/binaryen-c.h\"\n"; - std::cout << "int main() {\n"; - std::cout << " std::map<size_t, BinaryenFunctionTypeRef> functionTypes;\n"; - std::cout << " std::map<size_t, BinaryenExpressionRef> expressions;\n"; - std::cout << " expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);\n"; - std::cout << " std::map<size_t, BinaryenFunctionRef> functions;\n"; - std::cout << " std::map<size_t, RelooperBlockRef> relooperBlocks;\n"; - std::cout << " BinaryenModuleRef the_module = BinaryenModuleCreate();\n"; - std::cout << " RelooperRef the_relooper = NULL;\n"; - expressions[NULL] = 0; + std::cout << " the_module = BinaryenModuleCreate();\n"; } return new Module(); @@ -113,8 +101,6 @@ BinaryenModuleRef BinaryenModuleCreate(void) { void BinaryenModuleDispose(BinaryenModuleRef module) { if (tracing) { std::cout << " BinaryenModuleDispose(the_module);\n"; - std::cout << " return 0;\n"; - std::cout << "}\n"; } delete (Module*)module; @@ -967,6 +953,29 @@ BinaryenExpressionRef RelooperRenderAndDispose(RelooperRef relooper, RelooperBlo void BinaryenSetAPITracing(int on) { tracing = on; + + if (tracing) { + std::cout << "// beginning a Binaryen API trace\n"; + std::cout << "#include <math.h>\n"; + std::cout << "#include <map>\n"; + std::cout << "#include \"src/binaryen-c.h\"\n"; + std::cout << "int main() {\n"; + std::cout << " std::map<size_t, BinaryenFunctionTypeRef> functionTypes;\n"; + std::cout << " std::map<size_t, BinaryenExpressionRef> expressions;\n"; + std::cout << " expressions[size_t(NULL)] = BinaryenExpressionRef(NULL);\n"; + std::cout << " std::map<size_t, BinaryenFunctionRef> functions;\n"; + std::cout << " std::map<size_t, RelooperBlockRef> relooperBlocks;\n"; + std::cout << " BinaryenModuleRef the_module = BinaryenModuleCreate();\n"; + std::cout << " RelooperRef the_relooper = NULL;\n"; + expressions[NULL] = 0; + } else { + std::cout << " return 0;\n"; + std::cout << "}\n"; + functionTypes.clear(); + expressions.clear(); + functions.clear(); + relooperBlocks.clear(); + } } } // extern "C" |