diff options
author | erikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-05 19:46:31 +0000 |
---|---|---|
committer | erikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-05 19:46:31 +0000 |
commit | ac510e1f4a322381d1e82c9669bfd3c05113d6e6 (patch) | |
tree | f88fa9f412405d33f08755171503dac2c77d5e0b /base/path_service.cc | |
parent | 6d55c2fbc384e3f02a89b69e29fd8934ba2f0966 (diff) | |
download | chromium_src-ac510e1f4a322381d1e82c9669bfd3c05113d6e6.zip chromium_src-ac510e1f4a322381d1e82c9669bfd3c05113d6e6.tar.gz chromium_src-ac510e1f4a322381d1e82c9669bfd3c05113d6e6.tar.bz2 |
refactor base_paths so that windows-specific paths are pulled out into their own file. Note that some of the same path key names will exist in other platform-specific files. For example, base_paths_mac.mm will have FILE_EXE and DIR_APP_DATA (among others).
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@389 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/path_service.cc')
-rw-r--r-- | base/path_service.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/base/path_service.cc b/base/path_service.cc index f4b3a83..b3d413f 100644 --- a/base/path_service.cc +++ b/base/path_service.cc @@ -42,6 +42,9 @@ namespace base { bool PathProvider(int key, std::wstring* result); +#if OS_WIN + bool PathProviderWin(int key, std::wstring* result); +#endif } namespace { @@ -69,13 +72,31 @@ static Provider base_provider = { #endif }; +#ifdef OS_WIN +static Provider base_provider_win = { + base::PathProviderWin, + &base_provider, +#ifndef NDEBUG + base::PATH_WIN_START, + base::PATH_WIN_END +#endif +}; +#endif + struct PathData { Lock lock; PathMap cache; // Track mappings from path key to path value. PathSet overrides; // Track whether a path has been overridden. Provider* providers; // Linked list of path service providers. - PathData() : providers(&base_provider) { + PathData() { +#if defined(OS_WIN) + providers = &base_provider_win; +#elif defined(OS_MACOSX) + providers = &base_provider; +#elif defined(OS_LINUX) + providers = &base_provider; +#endif } }; |