Chromium Code Reviews| 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"; |
| } |