| Index: components/nacl/renderer/plugin/pnacl_translate_thread.cc
|
| diff --git a/components/nacl/renderer/plugin/pnacl_translate_thread.cc b/components/nacl/renderer/plugin/pnacl_translate_thread.cc
|
| index 560238d6605446e9848c42ae501a61f738bfb140..7fa7f79de1dbe94395b86c429015b3ecee419fdb 100644
|
| --- a/components/nacl/renderer/plugin/pnacl_translate_thread.cc
|
| +++ b/components/nacl/renderer/plugin/pnacl_translate_thread.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/logging.h"
|
| #include "components/nacl/renderer/plugin/plugin.h"
|
| #include "components/nacl/renderer/plugin/plugin_error.h"
|
| -#include "components/nacl/renderer/plugin/temporary_file.h"
|
| #include "components/nacl/renderer/plugin/utility.h"
|
| #include "content/public/common/sandbox_init.h"
|
| #include "native_client/src/shared/platform/nacl_sync_raii.h"
|
| @@ -83,9 +82,9 @@ void PnaclTranslateThread::SetupState(
|
| const pp::CompletionCallback& finish_callback,
|
| NaClSubprocess* compiler_subprocess,
|
| NaClSubprocess* ld_subprocess,
|
| - const std::vector<TempFile*>* obj_files,
|
| + std::vector<base::File>* obj_files,
|
| int num_threads,
|
| - TempFile* nexe_file,
|
| + base::File* nexe_file,
|
| ErrorInfo* error_info,
|
| PP_PNaClOptions* pnacl_options,
|
| const std::string& architecture_attributes,
|
| @@ -196,12 +195,13 @@ void PnaclTranslateThread::EndStream() {
|
| }
|
|
|
| ppapi::proxy::SerializedHandle PnaclTranslateThread::GetHandleForSubprocess(
|
| - TempFile* file, int32_t open_flags, base::ProcessId peer_pid) {
|
| + base::File* file, int32_t open_flags, base::ProcessId peer_pid) {
|
| IPC::PlatformFileForTransit file_for_transit;
|
|
|
| + DCHECK(file->IsValid());
|
| #if defined(OS_WIN)
|
| if (!content::BrokerDuplicateHandle(
|
| - file->GetFileHandle(),
|
| + file->GetPlatformFile(),
|
| peer_pid,
|
| &file_for_transit,
|
| 0, // desired_access is 0 since we're using DUPLICATE_SAME_ACCESS.
|
| @@ -209,7 +209,7 @@ ppapi::proxy::SerializedHandle PnaclTranslateThread::GetHandleForSubprocess(
|
| return ppapi::proxy::SerializedHandle();
|
| }
|
| #else
|
| - file_for_transit = base::FileDescriptor(dup(file->GetFileHandle()), true);
|
| + file_for_transit = base::FileDescriptor(dup(file->GetPlatformFile()), true);
|
| #endif
|
|
|
| // Using 0 disables any use of quota enforcement for this file handle.
|
| @@ -236,9 +236,9 @@ void PnaclTranslateThread::DoCompile() {
|
| }
|
|
|
| std::vector<ppapi::proxy::SerializedHandle> compiler_output_files;
|
| - for (TempFile* obj_file : *obj_files_) {
|
| + for (base::File& obj_file : *obj_files_) {
|
| compiler_output_files.push_back(
|
| - GetHandleForSubprocess(obj_file, PP_FILEOPENFLAG_WRITE,
|
| + GetHandleForSubprocess(&obj_file, PP_FILEOPENFLAG_WRITE,
|
| compiler_channel_peer_pid_));
|
| }
|
|
|
| @@ -365,10 +365,10 @@ void PnaclTranslateThread::DoLink() {
|
| }
|
|
|
| // Reset object files for reading first. We do this before duplicating
|
| - // handles/FDs to prevent any handle/FD leaks in case any of the Reset()
|
| + // handles/FDs to prevent any handle/FD leaks in case any of the Seek()
|
| // calls fail.
|
| - for (TempFile* obj_file : *obj_files_) {
|
| - if (!obj_file->Reset()) {
|
| + for (base::File& obj_file : *obj_files_) {
|
| + if (obj_file.Seek(base::File::FROM_BEGIN, 0) != 0) {
|
| TranslateFailed(PP_NACL_ERROR_PNACL_LD_SETUP,
|
| "Link process could not reset object file");
|
| return;
|
| @@ -379,9 +379,9 @@ void PnaclTranslateThread::DoLink() {
|
| GetHandleForSubprocess(nexe_file_, PP_FILEOPENFLAG_WRITE,
|
| ld_channel_peer_pid_);
|
| std::vector<ppapi::proxy::SerializedHandle> ld_input_files;
|
| - for (TempFile* obj_file : *obj_files_) {
|
| + for (base::File& obj_file : *obj_files_) {
|
| ld_input_files.push_back(
|
| - GetHandleForSubprocess(obj_file, PP_FILEOPENFLAG_READ,
|
| + GetHandleForSubprocess(&obj_file, PP_FILEOPENFLAG_READ,
|
| ld_channel_peer_pid_));
|
| }
|
|
|
|
|