Chromium Code Reviews| Index: ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc |
| diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc b/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc |
| index 7cb98b839872eb64eee8a47bb8e34ebea0432206..27ce23acaed102e937b0a7fd3279a03fff60f3d2 100644 |
| --- a/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc |
| +++ b/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc |
| @@ -15,6 +15,29 @@ |
| #include "ppapi/native_client/src/trusted/plugin/utility.h" |
| namespace plugin { |
| +namespace { |
| + |
| +std::vector<char> GetOptCommandLine(int32_t opt_level, bool is_debug) { |
| + std::vector<char> result; |
| + nacl::string str; |
| + |
| + nacl::stringstream ss; |
| + ss << "-O" << opt_level; |
| + str = ss.str(); |
| + std::copy(str.begin(), str.end(), std::back_inserter(result)); |
| + result.push_back('\x00'); |
| + // Debug info is only available in LLVM format pexes, |
| + // not in PNaCl format pexes. |
| + if (is_debug) { |
| + str = "-bitcode-format=llvm"; |
| + std::copy(str.begin(), str.end(), std::back_inserter(result)); |
| + result.push_back('\x00'); |
|
dmichael (off chromium)
2014/04/15 23:15:04
This all looks a little more complicated than it n
|
| + } |
| + |
| + return result; |
| +} |
| + |
| +} // namespace |
| PnaclTranslateThread::PnaclTranslateThread() : llc_subprocess_active_(false), |
| ld_subprocess_active_(false), |
| @@ -40,7 +63,7 @@ void PnaclTranslateThread::RunTranslate( |
| nacl::DescWrapper* invalid_desc_wrapper, |
| ErrorInfo* error_info, |
| PnaclResources* resources, |
| - PnaclOptions* pnacl_options, |
| + PP_PNaClOptions* pnacl_options, |
| PnaclCoordinator* coordinator, |
| Plugin* plugin) { |
| PLUGIN_PRINTF(("PnaclStreamingTranslateThread::RunTranslate)\n")); |
| @@ -187,7 +210,8 @@ void PnaclTranslateThread::DoTranslate() { |
| nacl::string split_arg = ss.str(); |
| std::copy(split_arg.begin(), split_arg.end(), std::back_inserter(split_args)); |
| split_args.push_back('\x00'); |
| - std::vector<char> options = pnacl_options_->GetOptCommandline(); |
| + std::vector<char> options = GetOptCommandLine(pnacl_options_->opt_level, |
| + pnacl_options_->is_debug); |
| std::copy(options.begin(), options.end(), std::back_inserter(split_args)); |
| init_success = llc_subprocess_->InvokeSrpcMethod( |
| "StreamInitWithSplit", |