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
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 @@
// 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() {