| Index: webrtc/base/unixfilesystem.cc
|
| diff --git a/webrtc/base/unixfilesystem.cc b/webrtc/base/unixfilesystem.cc
|
| index 4dea6b8620db70dc0342cdb48a2eca7e2a63c3e1..b4743241925e166fd92db83371203259d06aa12b 100644
|
| --- a/webrtc/base/unixfilesystem.cc
|
| +++ b/webrtc/base/unixfilesystem.cc
|
| @@ -17,7 +17,7 @@
|
| #include <unistd.h>
|
|
|
| #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
|
| -#include <CoreFoundation/CoreFoundation.h>
|
| +#include <Carbon/Carbon.h>
|
| #include <IOKit/IOCFBundle.h>
|
| #include <sys/statvfs.h>
|
| #include "webrtc/base/macutils.h"
|
| @@ -50,13 +50,13 @@
|
| #include "webrtc/base/stream.h"
|
| #include "webrtc/base/stringutils.h"
|
|
|
| -#if defined(WEBRTC_MAC)
|
| -// Defined in applefilesystem.mm. No header file to discourage use
|
| +#if defined(WEBRTC_IOS)
|
| +// Defined in iosfilesystem.mm. No header file to discourage use
|
| // elsewhere; other places should use GetApp{Data,Temp}Folder() in
|
| // this file. Don't copy/paste. I mean it.
|
| -char* AppleDataDirectory();
|
| -char* AppleTempDirectory();
|
| -void AppleAppName(rtc::Pathname* path);
|
| +char* IOSDataDirectory();
|
| +char* IOSTempDirectory();
|
| +void IOSAppName(rtc::Pathname* path);
|
| #endif
|
|
|
| namespace rtc {
|
| @@ -81,9 +81,9 @@
|
| UnixFilesystem::UnixFilesystem() {
|
| #if defined(WEBRTC_IOS)
|
| if (!provided_app_data_folder_)
|
| - provided_app_data_folder_ = AppleDataDirectory();
|
| + provided_app_data_folder_ = IOSDataDirectory();
|
| if (!provided_app_temp_folder_)
|
| - provided_app_temp_folder_ = AppleTempDirectory();
|
| + provided_app_temp_folder_ = IOSTempDirectory();
|
| #endif
|
| }
|
|
|
| @@ -357,10 +357,24 @@
|
| }
|
|
|
| bool UnixFilesystem::GetAppPathname(Pathname* path) {
|
| -#if defined(__native_client__)
|
| +#if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
|
| + ProcessSerialNumber psn = { 0, kCurrentProcess };
|
| + CFDictionaryRef procinfo = ProcessInformationCopyDictionary(&psn,
|
| + kProcessDictionaryIncludeAllInformationMask);
|
| + if (NULL == procinfo)
|
| + return false;
|
| + CFStringRef cfpath = (CFStringRef) CFDictionaryGetValue(procinfo,
|
| + kIOBundleExecutableKey);
|
| + std::string path8;
|
| + bool success = ToUtf8(cfpath, &path8);
|
| + CFRelease(procinfo);
|
| + if (success)
|
| + path->SetPathname(path8);
|
| + return success;
|
| +#elif defined(__native_client__)
|
| return false;
|
| -#elif defined(WEBRTC_MAC)
|
| - AppleAppName(path);
|
| +#elif WEBRTC_IOS
|
| + IOSAppName(path);
|
| return true;
|
| #else // WEBRTC_MAC && !defined(WEBRTC_IOS)
|
| char buffer[PATH_MAX + 2];
|
|
|