summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhans@chromium.org <hans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-10 12:45:35 +0000
committerhans@chromium.org <hans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-10 12:45:35 +0000
commita34cc0992e8735dbbec8447d24dbb5c31fc85700 (patch)
tree61ba63c84dad4f9f7b90be85c618c140640f282c
parent96bb7f65e415bf2c3aae0f6fc276b936503fbfd8 (diff)
downloadchromium_src-a34cc0992e8735dbbec8447d24dbb5c31fc85700.zip
chromium_src-a34cc0992e8735dbbec8447d24dbb5c31fc85700.tar.gz
chromium_src-a34cc0992e8735dbbec8447d24dbb5c31fc85700.tar.bz2
Clean-up inline members of nested classes (base/)
Due to a bug, the Clang-plugin style checker failed to warn about inline constructors, destructors, non-empty virtual methods, etc. for nested classes. The plugin has been fixed, and this patch is part of a clean-up of all the code that now causes the plugin to issue errors. BUG=139346 Review URL: https://chromiumcodereview.appspot.com/10825273 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151016 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/system_monitor/system_monitor.cc11
-rw-r--r--base/system_monitor/system_monitor.h9
-rw-r--r--base/values.cc12
-rw-r--r--base/values.h11
4 files changed, 31 insertions, 12 deletions
diff --git a/base/system_monitor/system_monitor.cc b/base/system_monitor/system_monitor.cc
index d1dd439..5df0557 100644
--- a/base/system_monitor/system_monitor.cc
+++ b/base/system_monitor/system_monitor.cc
@@ -22,6 +22,17 @@ static SystemMonitor* g_system_monitor = NULL;
static int kDelayedBatteryCheckMs = 10 * 1000;
#endif // defined(ENABLE_BATTERY_MONITORING)
+SystemMonitor::MediaDeviceInfo::MediaDeviceInfo(
+ const std::string& id,
+ const string16& device_name,
+ MediaDeviceType device_type,
+ const FilePath::StringType& device_location)
+ : unique_id(id),
+ name(device_name),
+ type(device_type),
+ location(device_location) {
+}
+
SystemMonitor::SystemMonitor()
: power_observer_list_(new ObserverListThreadSafe<PowerObserver>()),
devices_changed_observer_list_(
diff --git a/base/system_monitor/system_monitor.h b/base/system_monitor/system_monitor.h
index e05df74..5f4d42d 100644
--- a/base/system_monitor/system_monitor.h
+++ b/base/system_monitor/system_monitor.h
@@ -64,16 +64,11 @@ class BASE_EXPORT SystemMonitor {
TYPE_MTP, // (W)string to locate a MTP device, e.g. its usb bus/port.
};
- struct MediaDeviceInfo {
+ struct BASE_EXPORT MediaDeviceInfo {
MediaDeviceInfo(const std::string& id,
const string16& device_name,
MediaDeviceType device_type,
- const FilePath::StringType& device_location)
- : unique_id(id),
- name(device_name),
- type(device_type),
- location(device_location) {
- }
+ const FilePath::StringType& device_location);
// Unique media device id - persists between device attachments.
std::string unique_id;
diff --git a/base/values.cc b/base/values.cc
index 1ccc9ec..c9b5eef 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -750,6 +750,18 @@ void DictionaryValue::Swap(DictionaryValue* other) {
dictionary_.swap(other->dictionary_);
}
+DictionaryValue::key_iterator::key_iterator(ValueMap::const_iterator itr) {
+ itr_ = itr;
+}
+
+DictionaryValue::key_iterator::key_iterator(const key_iterator& rhs) {
+ itr_ = rhs.itr_;
+}
+
+DictionaryValue::Iterator::Iterator(const DictionaryValue& target)
+ : target_(target),
+ it_(target.dictionary_.begin()) {}
+
DictionaryValue* DictionaryValue::DeepCopy() const {
DictionaryValue* result = new DictionaryValue;
diff --git a/base/values.h b/base/values.h
index c583407..83d046c 100644
--- a/base/values.h
+++ b/base/values.h
@@ -339,10 +339,12 @@ class BASE_EXPORT DictionaryValue : public Value {
// YOU SHOULD ALWAYS USE THE XXXWithoutPathExpansion() APIs WITH THESE, NOT
// THE NORMAL XXX() APIs. This makes sure things will work correctly if any
// keys have '.'s in them.
- class key_iterator
+ class BASE_EXPORT key_iterator
: private std::iterator<std::input_iterator_tag, const std::string> {
public:
- explicit key_iterator(ValueMap::const_iterator itr) { itr_ = itr; }
+ explicit key_iterator(ValueMap::const_iterator itr);
+ // Not explicit, because this is a copy constructor.
+ key_iterator(const key_iterator& rhs);
key_iterator operator++() {
++itr_;
return *this;
@@ -360,10 +362,9 @@ class BASE_EXPORT DictionaryValue : public Value {
// This class provides an iterator over both keys and values in the
// dictionary. It can't be used to modify the dictionary.
- class Iterator {
+ class BASE_EXPORT Iterator {
public:
- explicit Iterator(const DictionaryValue& target)
- : target_(target), it_(target.dictionary_.begin()) {}
+ explicit Iterator(const DictionaryValue& target);
bool HasNext() const { return it_ != target_.dictionary_.end(); }
void Advance() { ++it_; }