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

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

Issue 291973002: Pepper: DescWrapper cleanup in PnaclResources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nits 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/plugin.cc
diff --git a/ppapi/native_client/src/trusted/plugin/plugin.cc b/ppapi/native_client/src/trusted/plugin/plugin.cc
index 0e5422a86580321c5d9dfbf1f571c052d65ce3a2..56d4441c899c48aa32a74bd25ba80745bd800e6e 100644
--- a/ppapi/native_client/src/trusted/plugin/plugin.cc
+++ b/ppapi/native_client/src/trusted/plugin/plugin.cc
@@ -49,27 +49,6 @@ const int64_t kTimeSmallMin = 1; // in ms
const int64_t kTimeSmallMax = 20000; // in ms
const uint32_t kTimeSmallBuckets = 100;
-// Converts a PP_FileHandle to a POSIX file descriptor.
-int32_t ConvertFileDescriptor(PP_FileHandle handle) {
- PLUGIN_PRINTF(("ConvertFileDescriptor, handle=%d\n", handle));
-#if NACL_WINDOWS
- int32_t file_desc = NACL_NO_FILE_DESC;
- // On Windows, valid handles are 32 bit unsigned integers so this is safe.
- file_desc = reinterpret_cast<intptr_t>(handle);
- // Convert the Windows HANDLE from Pepper to a POSIX file descriptor.
- int32_t posix_desc = _open_osfhandle(file_desc, _O_RDWR | _O_BINARY);
- if (posix_desc == -1) {
- // Close the Windows HANDLE if it can't be converted.
- CloseHandle(reinterpret_cast<HANDLE>(file_desc));
- return -1;
- }
- return posix_desc;
-#else
- return handle;
-#endif
-}
-
-
} // namespace
void Plugin::ShutDownSubprocesses() {
@@ -111,7 +90,7 @@ void Plugin::HistogramEnumerateSelLdrLoadStatus(NaClErrorCode error_code) {
}
bool Plugin::LoadNaClModuleFromBackgroundThread(
- nacl::DescWrapper* wrapper,
+ PP_FileHandle file_handle,
NaClSubprocess* subprocess,
int32_t manifest_id,
const SelLdrStartParams& params) {
@@ -143,9 +122,12 @@ bool Plugin::LoadNaClModuleFromBackgroundThread(
PLUGIN_PRINTF(("Plugin::LoadNaClModuleFromBackgroundThread "
"(service_runtime_started=%d)\n",
service_runtime_started));
- if (!service_runtime_started) {
+ if (!service_runtime_started)
return false;
- }
+
+ // TODO(teravest): Get rid of this conversion to DescWrapper.
+ int32_t fd = ConvertFileDescriptor(file_handle, true);
+ nacl::DescWrapper* wrapper = wrapper_factory()->MakeFileDesc(fd, O_RDONLY);
// Now actually load the nexe, which can happen on a background thread.
bool nexe_loaded = service_runtime->LoadNexeAndStart(
@@ -269,7 +251,7 @@ bool Plugin::LoadNaClModuleContinuationIntern() {
}
NaClSubprocess* Plugin::LoadHelperNaClModule(const nacl::string& helper_url,
- nacl::DescWrapper* wrapper,
+ PP_FileHandle file_handle,
int32_t manifest_id,
ErrorInfo* error_info) {
nacl::scoped_ptr<NaClSubprocess> nacl_subprocess(
@@ -296,7 +278,7 @@ NaClSubprocess* Plugin::LoadHelperNaClModule(const nacl::string& helper_url,
false /* enable_dyncode_syscalls */,
false /* enable_exception_handling */,
true /* enable_crash_throttling */);
- if (!LoadNaClModuleFromBackgroundThread(wrapper, nacl_subprocess.get(),
+ if (!LoadNaClModuleFromBackgroundThread(file_handle, nacl_subprocess.get(),
manifest_id, params)) {
return NULL;
}
@@ -435,7 +417,7 @@ void Plugin::NexeFileDidOpen(int32_t pp_error) {
if (pp_error != PP_OK)
return;
- int32_t desc = ConvertFileDescriptor(nexe_handle_);
+ int32_t desc = ConvertFileDescriptor(nexe_handle_, true);
nexe_handle_ = PP_kInvalidFileHandle; // Clear out nexe handle.
nacl::scoped_ptr<nacl::DescWrapper>
« no previous file with comments | « ppapi/native_client/src/trusted/plugin/plugin.h ('k') | ppapi/native_client/src/trusted/plugin/pnacl_resources.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698