Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(643)

Unified Diff: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc

Issue 299143004: Pepper: TempFile cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: build fix Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
index 27c75c7400dda53d1ca3a704f00b60191cd4cb0f..3417b92989ad6e8b837d62b63cedbdf6fe8c91d7 100644
--- a/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
+++ b/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
@@ -199,9 +199,9 @@ PnaclCoordinator::~PnaclCoordinator() {
}
}
-nacl::DescWrapper* PnaclCoordinator::ReleaseTranslatedFD() {
+PP_FileHandle PnaclCoordinator::TakeTranslatedFileHandle() {
DCHECK(temp_nexe_file_ != NULL);
- return temp_nexe_file_->release_read_wrapper();
+ return temp_nexe_file_->TakeFileHandle();
}
void PnaclCoordinator::ReportNonPpapiError(PP_NaClError err_code,
@@ -440,9 +440,8 @@ void PnaclCoordinator::ResourcesDidLoad(int32_t pp_error) {
void PnaclCoordinator::NexeFdDidOpen(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::NexeFdDidOpen (pp_error=%"
- NACL_PRId32 ", hit=%d, handle=%d)\n", pp_error,
- is_cache_hit_ == PP_TRUE,
- *temp_nexe_file_->existing_handle()));
+ NACL_PRId32 ", hit=%d)\n", pp_error,
+ is_cache_hit_ == PP_TRUE));
if (pp_error < PP_OK) {
ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP, pp_error,
nacl::string("GetNexeFd failed"));
@@ -462,18 +461,20 @@ void PnaclCoordinator::NexeFdDidOpen(int32_t pp_error) {
// Cache hit -- no need to stream the rest of the file.
streaming_downloader_.reset(NULL);
// Open it for reading as the cached nexe file.
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(&PnaclCoordinator::NexeReadDidOpen);
- temp_nexe_file_->Open(cb, false);
+ NexeReadDidOpen(temp_nexe_file_->Open(false));
} else {
// Open an object file first so the translator can start writing to it
// during streaming translation.
for (int i = 0; i < split_module_count_; i++) {
obj_files_.push_back(new TempFile(plugin_));
-
- pp::CompletionCallback obj_cb =
- callback_factory_.NewCallback(&PnaclCoordinator::ObjectFileDidOpen);
- obj_files_[i]->Open(obj_cb, true);
+ int32_t pp_error = obj_files_[i]->Open(true);
+ if (pp_error != PP_OK) {
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP,
+ pp_error,
+ "Failed to open scratch object file.");
+ } else {
+ num_object_files_opened_++;
+ }
}
invalid_desc_wrapper_.reset(plugin_->wrapper_factory()->MakeInvalid());
@@ -484,6 +485,12 @@ void PnaclCoordinator::NexeFdDidOpen(int32_t pp_error) {
pp::CompletionCallback finish_cb = callback_factory_.NewCallback(
&PnaclCoordinator::BitcodeStreamDidFinish);
streaming_downloader_->FinishStreaming(finish_cb);
+
+ if (num_object_files_opened_ == split_module_count_) {
+ // Open the nexe file for connecting ld and sel_ldr.
+ // Start translation when done with this last step of setup!
+ RunTranslate(temp_nexe_file_->Open(true));
+ }
}
}
@@ -590,25 +597,6 @@ void PnaclCoordinator::GetCurrentProgress(int64_t* bytes_loaded,
*bytes_total = expected_pexe_size_;
}
-void PnaclCoordinator::ObjectFileDidOpen(int32_t pp_error) {
- PLUGIN_PRINTF(("PnaclCoordinator::ObjectFileDidOpen (pp_error=%"
- NACL_PRId32 ")\n", pp_error));
- if (pp_error != PP_OK) {
- ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP,
- pp_error,
- "Failed to open scratch object file.");
- return;
- }
- num_object_files_opened_++;
- if (num_object_files_opened_ == split_module_count_) {
- // Open the nexe file for connecting ld and sel_ldr.
- // Start translation when done with this last step of setup!
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(&PnaclCoordinator::RunTranslate);
- temp_nexe_file_->Open(cb, true);
- }
-}
-
void PnaclCoordinator::RunTranslate(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::RunTranslate (pp_error=%"
NACL_PRId32 ")\n", pp_error));

Powered by Google App Engine
This is Rietveld 408576698