Index: chrome/plugin/plugin_main_mac.mm |
diff --git a/chrome/plugin/plugin_main_mac.mm b/chrome/plugin/plugin_main_mac.mm |
index 56b7c959f806604ca78952bc21931569f934066f..119f98683dae4ffd0ef7767bffc7565a37354c88 100644 |
--- a/chrome/plugin/plugin_main_mac.mm |
+++ b/chrome/plugin/plugin_main_mac.mm |
@@ -1,17 +1,21 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
#include "base/chrome_application_mac.h" |
+#include "base/env_var.h" |
+#include "base/scoped_ptr.h" |
#include "base/string_util.h" |
#include "chrome/common/plugin_carbon_interpose_constants_mac.h" |
#include "chrome/plugin/plugin_interpose_util_mac.h" |
#if !defined(__LP64__) |
void TrimInterposeEnvironment() { |
- const char* interpose_list = |
- getenv(plugin_interpose_strings::kDYLDInsertLibrariesKey); |
- if (!interpose_list) { |
+ scoped_ptr<base::EnvVarGetter> env(base::EnvVarGetter::Create()); |
+ |
+ std::string interpose_list; |
+ if (!env->GetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey, |
+ &interpose_list)) { |
NOTREACHED() << "No interposing libraries set"; |
return; |
} |
@@ -21,19 +25,19 @@ void TrimInterposeEnvironment() { |
// need to handle are: |
// 1) The whole string is "<kInterposeLibraryPath>", so just clear it, or |
// 2) ":<kInterposeLibraryPath>" is the end of the string, so trim and re-set. |
- int suffix_offset = strlen(interpose_list) - |
+ int suffix_offset = strlen(interpose_list.c_str()) - |
Lei Zhang
2010/08/01 18:22:51
You forgot to fix this per vtl's comments from the
|
strlen(plugin_interpose_strings::kInterposeLibraryPath); |
+ |
if (suffix_offset == 0 && |
- strcmp(interpose_list, |
+ strcmp(interpose_list.c_str(), |
plugin_interpose_strings::kInterposeLibraryPath) == 0) { |
- unsetenv(plugin_interpose_strings::kDYLDInsertLibrariesKey); |
+ env->UnSetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey); |
} else if (suffix_offset > 0 && interpose_list[suffix_offset - 1] == ':' && |
- strcmp(interpose_list + suffix_offset, |
+ strcmp(interpose_list.c_str() + suffix_offset, |
plugin_interpose_strings::kInterposeLibraryPath) == 0) { |
- std::string trimmed_list = |
- std::string(interpose_list).substr(0, suffix_offset - 1); |
- setenv(plugin_interpose_strings::kDYLDInsertLibrariesKey, |
- trimmed_list.c_str(), 1); |
+ std::string trimmed_list = interpose_list.substr(0, suffix_offset - 1); |
+ env->SetEnv(plugin_interpose_strings::kDYLDInsertLibrariesKey, |
+ trimmed_list.c_str()); |
} else { |
NOTREACHED() << "Missing Carbon interposing library"; |
} |