xref: /aosp_15_r20/external/libchrome/libchrome_tools/patch/virtual_destructor.patch (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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