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

Side by Side Diff: talk/media/base/executablehelpers.h

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase + revert basictypes.h (to be landed separately just in case of a revert due to unexpected us… Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « talk/media/base/cpuid.cc ('k') | talk/media/base/fakemediaengine.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 24 matching lines...) Expand all
35 #include <string> 35 #include <string>
36 36
37 #include "webrtc/base/logging.h" 37 #include "webrtc/base/logging.h"
38 #include "webrtc/base/pathutils.h" 38 #include "webrtc/base/pathutils.h"
39 39
40 namespace rtc { 40 namespace rtc {
41 41
42 // Returns the path to the running executable or an empty path. 42 // Returns the path to the running executable or an empty path.
43 // TODO(thorcarpenter): Consolidate with FluteClient::get_executable_dir. 43 // TODO(thorcarpenter): Consolidate with FluteClient::get_executable_dir.
44 inline Pathname GetExecutablePath() { 44 inline Pathname GetExecutablePath() {
45 const int32 kMaxExePathSize = 255; 45 const int32_t kMaxExePathSize = 255;
46 #ifdef WIN32 46 #ifdef WIN32
47 TCHAR exe_path_buffer[kMaxExePathSize]; 47 TCHAR exe_path_buffer[kMaxExePathSize];
48 DWORD copied_length = GetModuleFileName(NULL, // NULL = Current process 48 DWORD copied_length = GetModuleFileName(NULL, // NULL = Current process
49 exe_path_buffer, kMaxExePathSize); 49 exe_path_buffer, kMaxExePathSize);
50 if (0 == copied_length) { 50 if (0 == copied_length) {
51 LOG(LS_ERROR) << "Copied length is zero"; 51 LOG(LS_ERROR) << "Copied length is zero";
52 return rtc::Pathname(); 52 return rtc::Pathname();
53 } 53 }
54 if (kMaxExePathSize == copied_length) { 54 if (kMaxExePathSize == copied_length) {
55 LOG(LS_ERROR) << "Buffer too small"; 55 LOG(LS_ERROR) << "Buffer too small";
56 return rtc::Pathname(); 56 return rtc::Pathname();
57 } 57 }
58 #ifdef UNICODE 58 #ifdef UNICODE
59 std::wstring wdir(exe_path_buffer); 59 std::wstring wdir(exe_path_buffer);
60 std::string dir_tmp(wdir.begin(), wdir.end()); 60 std::string dir_tmp(wdir.begin(), wdir.end());
61 rtc::Pathname path(dir_tmp); 61 rtc::Pathname path(dir_tmp);
62 #else // UNICODE 62 #else // UNICODE
63 rtc::Pathname path(exe_path_buffer); 63 rtc::Pathname path(exe_path_buffer);
64 #endif // UNICODE 64 #endif // UNICODE
65 #elif defined(OSX) || defined(LINUX) 65 #elif defined(OSX) || defined(LINUX)
66 char exe_path_buffer[kMaxExePathSize]; 66 char exe_path_buffer[kMaxExePathSize];
67 #ifdef OSX 67 #ifdef OSX
68 uint32_t copied_length = kMaxExePathSize - 1; 68 uint32_t copied_length = kMaxExePathSize - 1;
69 if (_NSGetExecutablePath(exe_path_buffer, &copied_length) == -1) { 69 if (_NSGetExecutablePath(exe_path_buffer, &copied_length) == -1) {
70 LOG(LS_ERROR) << "Buffer too small"; 70 LOG(LS_ERROR) << "Buffer too small";
71 return rtc::Pathname(); 71 return rtc::Pathname();
72 } 72 }
73 #elif defined LINUX 73 #elif defined LINUX
74 int32 copied_length = kMaxExePathSize - 1; 74 int32_t copied_length = kMaxExePathSize - 1;
75 const char* kProcExeFmt = "/proc/%d/exe"; 75 const char* kProcExeFmt = "/proc/%d/exe";
76 char proc_exe_link[40]; 76 char proc_exe_link[40];
77 snprintf(proc_exe_link, sizeof(proc_exe_link), kProcExeFmt, getpid()); 77 snprintf(proc_exe_link, sizeof(proc_exe_link), kProcExeFmt, getpid());
78 copied_length = readlink(proc_exe_link, exe_path_buffer, copied_length); 78 copied_length = readlink(proc_exe_link, exe_path_buffer, copied_length);
79 if (copied_length == -1) { 79 if (copied_length == -1) {
80 LOG_ERR(LS_ERROR) << "Error reading link " << proc_exe_link; 80 LOG_ERR(LS_ERROR) << "Error reading link " << proc_exe_link;
81 return rtc::Pathname(); 81 return rtc::Pathname();
82 } 82 }
83 if (copied_length == kMaxExePathSize - 1) { 83 if (copied_length == kMaxExePathSize - 1) {
84 LOG(LS_ERROR) << "Probably truncated result when reading link " 84 LOG(LS_ERROR) << "Probably truncated result when reading link "
85 << proc_exe_link; 85 << proc_exe_link;
86 return rtc::Pathname(); 86 return rtc::Pathname();
87 } 87 }
88 exe_path_buffer[copied_length] = '\0'; 88 exe_path_buffer[copied_length] = '\0';
89 #endif // LINUX 89 #endif // LINUX
90 rtc::Pathname path(exe_path_buffer); 90 rtc::Pathname path(exe_path_buffer);
91 #else // Android || IOS 91 #else // Android || IOS
92 rtc::Pathname path; 92 rtc::Pathname path;
93 #endif // OSX || LINUX 93 #endif // OSX || LINUX
94 return path; 94 return path;
95 } 95 }
96 96
97 } // namespace rtc 97 } // namespace rtc
98 98
99 #endif // TALK_MEDIA_BASE_EXECUTABLEHELPERS_H_ 99 #endif // TALK_MEDIA_BASE_EXECUTABLEHELPERS_H_
100 100
OLDNEW
« no previous file with comments | « talk/media/base/cpuid.cc ('k') | talk/media/base/fakemediaengine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698