1 --- a/base/metrics/histogram.cc 2 +++ b/base/metrics/histogram.cc 3 @@ -94,6 +94,7 @@ class Histogram::Factory { 4 uint32_t bucket_count, 5 int32_t flags) 6 : Factory(name, HISTOGRAM, minimum, maximum, bucket_count, flags) {} 7 + virtual ~Factory() = default; 8 9 // Create histogram based on construction parameters. Caller takes 10 // ownership of the returned object. 11 @@ -741,6 +742,7 @@ class LinearHistogram::Factory : public 12 bucket_count, flags) { 13 descriptions_ = descriptions; 14 } 15 + ~Factory() override = default; 16 17 protected: 18 BucketRanges* CreateRanges() override { 19 @@ -932,6 +934,7 @@ class BooleanHistogram::Factory : public 20 public: 21 Factory(const std::string& name, int32_t flags) 22 : Histogram::Factory(name, BOOLEAN_HISTOGRAM, 1, 2, 3, flags) {} 23 + ~Factory() override = default; 24 25 protected: 26 BucketRanges* CreateRanges() override { 27 @@ -1020,6 +1023,7 @@ class CustomHistogram::Factory : public 28 : Histogram::Factory(name, CUSTOM_HISTOGRAM, 0, 0, 0, flags) { 29 custom_ranges_ = custom_ranges; 30 } 31 + ~Factory() override = default; 32 33 protected: 34 BucketRanges* CreateRanges() override { 35 --- a/base/metrics/statistics_recorder.h 36 +++ b/base/metrics/statistics_recorder.h 37 @@ -67,6 +67,7 @@ class BASE_EXPORT StatisticsRecorder { 38 // histograms from providers when necessary. 39 class HistogramProvider { 40 public: 41 + virtual ~HistogramProvider() {} 42 // Merges all histogram information into the global versions. 43 virtual void MergeHistogramDeltas() = 0; 44 }; 45 --- a/base/bind_unittest.cc 46 +++ b/base/bind_unittest.cc 47 @@ -69,6 +69,7 @@ static const int kChildValue = 2; 48 49 class Parent { 50 public: 51 + virtual ~Parent() {} 52 void AddRef() const {} 53 void Release() const {} 54 virtual void VirtualSet() { value = kParentValue; } 55 @@ -78,18 +79,23 @@ class Parent { 56 57 class Child : public Parent { 58 public: 59 + ~Child() override {} 60 void VirtualSet() override { value = kChildValue; } 61 void NonVirtualSet() { value = kChildValue; } 62 }; 63 64 class NoRefParent { 65 public: 66 + virtual ~NoRefParent() {} 67 virtual void VirtualSet() { value = kParentValue; } 68 void NonVirtualSet() { value = kParentValue; } 69 int value; 70 }; 71 72 class NoRefChild : public NoRefParent { 73 + public: 74 + ~NoRefChild() override {} 75 + private: 76 void VirtualSet() override { value = kChildValue; } 77 void NonVirtualSet() { value = kChildValue; } 78 }; 79