提交 b1804199 编写于 作者: D Daniel Larimer 提交者: GitHub

Merge pull request #362 from EOSIO/nathan-misc

Replace utilities::assemble_wasm with chain::wast_to_wasm
......@@ -14,7 +14,6 @@ set(sources
string_escape.cpp
tempdir.cpp
words.cpp
wasm.cpp
${HEADERS})
#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/git_revision.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/git_revision.cpp" @ONLY)
......
#pragma once
#include <string>
#include <vector>
namespace eos { namespace utilities {
std::vector<uint8_t> assemble_wast(const std::string& wast);
} } // namespace eos::utilities
#include <eos/utilities/wasm.hpp>
#include <fc/exception/exception.hpp>
#include <Inline/BasicTypes.h>
#include <IR/Module.h>
#include <IR/Validate.h>
#include <WAST/WAST.h>
#include <WASM/WASM.h>
#include <iostream>
#include <iomanip>
namespace eos { namespace utilities {
std::vector<uint8_t> assemble_wast( const std::string& wast ) {
IR::Module module;
std::vector<WAST::Error> parseErrors;
WAST::parseModule(wast.c_str(),wast.size(),module,parseErrors);
if(parseErrors.size())
{
// Print any parse errors;
std::cerr << "Error parsing WebAssembly text file:" << std::endl;
for(auto& error : parseErrors)
{
std::cerr << ":" << error.locus.describe() << ": " << error.message.c_str() << std::endl;
std::cerr << error.locus.sourceLine << std::endl;
std::cerr << std::setw(error.locus.column(8)) << "^" << std::endl;
}
FC_ASSERT( !"error parsing wast" );
}
try
{
// Serialize the WebAssembly module.
Serialization::ArrayOutputStream stream;
WASM::serialize(stream,module);
return stream.getBytes();
}
catch(Serialization::FatalSerializationException exception)
{
std::cerr << "Error serializing WebAssembly binary file:" << std::endl;
std::cerr << exception.message << std::endl;
throw;
}
}
} } // namespace eos::utilities
......@@ -76,7 +76,7 @@ inline std::vector<Name> sort_names( std::vector<Name>&& names ) {
#define SETCODE3(chain, acct, wast) \
{ \
auto wasm = eos::utilities::assemble_wast(wast); \
auto wasm = eos::chain::wast_to_wasm(wast); \
types::setcode handler; \
handler.account = #acct; \
handler.code.assign(wasm.begin(), wasm.end()); \
......
#pragma once
#include <eos/utilities/wasm.hpp>
#include <eos/chain/wast_to_wasm.hpp>
#include "macro_support.hpp"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册