summaryrefslogtreecommitdiffstats
path: root/base/file_version_info_mac.mm
diff options
context:
space:
mode:
authoravi@google.com <avi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-23 16:57:36 +0000
committeravi@google.com <avi@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-23 16:57:36 +0000
commit095622382c96432f4c90e69eb7591ebe9e5e3d46 (patch)
tree5ee1d78b950af33c3b544ae911d0d4b40786a458 /base/file_version_info_mac.mm
parent40f52f0c52a82bc988bc95dc296ddfa89f09154a (diff)
downloadchromium_src-095622382c96432f4c90e69eb7591ebe9e5e3d46.zip
chromium_src-095622382c96432f4c90e69eb7591ebe9e5e3d46.tar.gz
chromium_src-095622382c96432f4c90e69eb7591ebe9e5e3d46.tar.bz2
Add FilePath support to FileVersionInfo, fix Mac memory issues.
Review URL: http://codereview.chromium.org/15082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7417 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_version_info_mac.mm')
-rw-r--r--base/file_version_info_mac.mm20
1 files changed, 12 insertions, 8 deletions
diff --git a/base/file_version_info_mac.mm b/base/file_version_info_mac.mm
index 62fe7e0..3813cc6 100644
--- a/base/file_version_info_mac.mm
+++ b/base/file_version_info_mac.mm
@@ -9,14 +9,8 @@
#include "base/logging.h"
#include "base/string_util.h"
-FileVersionInfo::FileVersionInfo(const std::wstring& file_path) {
- NSString* path = [[NSString alloc]
- initWithCString:reinterpret_cast<const char*>(file_path.c_str())
- encoding:NSUTF32StringEncoding];
- bundle_ = [NSBundle bundleWithPath: path];
-}
-
FileVersionInfo::FileVersionInfo(NSBundle *bundle) : bundle_(bundle) {
+ [bundle_ retain];
}
FileVersionInfo::~FileVersionInfo() {
@@ -34,7 +28,17 @@ FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForCurrentModule() {
// static
FileVersionInfo* FileVersionInfo::CreateFileVersionInfo(
const std::wstring& file_path) {
- return new FileVersionInfo(file_path);
+ NSString* path = [NSString stringWithCString:
+ reinterpret_cast<const char*>(file_path.c_str())
+ encoding:NSUTF32StringEncoding];
+ return new FileVersionInfo([NSBundle bundleWithPath:path]);
+}
+
+// static
+FileVersionInfo* FileVersionInfo::CreateFileVersionInfo(
+ const FilePath& file_path) {
+ NSString* path = [NSString stringWithUTF8String:file_path.value().c_str()];
+ return new FileVersionInfo([NSBundle bundleWithPath:path]);
}
std::wstring FileVersionInfo::company_name() {