OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/path_service.h" | 5 #include "base/path_service.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <shellapi.h> | 9 #include <shellapi.h> |
10 #include <shlobj.h> | 10 #include <shlobj.h> |
(...skipping 15 matching lines...) Expand all Loading... |
26 bool PathProviderWin(int key, FilePath* result); | 26 bool PathProviderWin(int key, FilePath* result); |
27 #elif defined(OS_MACOSX) | 27 #elif defined(OS_MACOSX) |
28 bool PathProviderMac(int key, FilePath* result); | 28 bool PathProviderMac(int key, FilePath* result); |
29 #elif defined(OS_ANDROID) | 29 #elif defined(OS_ANDROID) |
30 bool PathProviderAndroid(int key, FilePath* result); | 30 bool PathProviderAndroid(int key, FilePath* result); |
31 #elif defined(OS_POSIX) | 31 #elif defined(OS_POSIX) |
32 // PathProviderPosix is the default path provider on POSIX OSes other than | 32 // PathProviderPosix is the default path provider on POSIX OSes other than |
33 // Mac and Android. | 33 // Mac and Android. |
34 bool PathProviderPosix(int key, FilePath* result); | 34 bool PathProviderPosix(int key, FilePath* result); |
35 #endif | 35 #endif |
36 } | 36 } // namespace base |
37 | 37 |
38 namespace { | 38 namespace { |
39 | 39 |
40 typedef base::hash_map<int, FilePath> PathMap; | 40 typedef base::hash_map<int, FilePath> PathMap; |
41 | 41 |
42 // We keep a linked list of providers. In a debug build we ensure that no two | 42 // We keep a linked list of providers. In a debug build we ensure that no two |
43 // providers claim overlapping keys. | 43 // providers claim overlapping keys. |
44 struct Provider { | 44 struct Provider { |
45 PathService::ProviderFunc func; | 45 PathService::ProviderFunc func; |
46 struct Provider* next; | 46 struct Provider* next; |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 | 332 |
333 // static | 333 // static |
334 void PathService::DisableCache() { | 334 void PathService::DisableCache() { |
335 PathData* path_data = GetPathData(); | 335 PathData* path_data = GetPathData(); |
336 DCHECK(path_data); | 336 DCHECK(path_data); |
337 | 337 |
338 base::AutoLock scoped_lock(path_data->lock); | 338 base::AutoLock scoped_lock(path_data->lock); |
339 path_data->cache.clear(); | 339 path_data->cache.clear(); |
340 path_data->cache_disabled = true; | 340 path_data->cache_disabled = true; |
341 } | 341 } |
OLD | NEW |