]> granicus.if.org Git - icu/commitdiff
ICU-11917 virtual destructors must be defined explicitly, out-of-line, first virtual...
authorMarkus Scherer <markus.icu@gmail.com>
Tue, 22 Sep 2015 21:51:03 +0000 (21:51 +0000)
committerMarkus Scherer <markus.icu@gmail.com>
Tue, 22 Sep 2015 21:51:03 +0000 (21:51 +0000)
X-SVN-Rev: 37993

icu4c/source/common/filteredbrk.cpp
icu4c/source/i18n/csrsbcs.cpp
icu4c/source/i18n/csrsbcs.h
icu4c/source/i18n/valueformatter.cpp
icu4c/source/i18n/valueformatter.h

index 249da43f4111d35739e19ce18ed53eb818c5984a..5a8f0b0873e645647bf9bac071547b66c9e5c9bb 100644 (file)
@@ -135,16 +135,19 @@ static const UChar   kFULLSTOP = 0x002E; // '.'
  */
 class SimpleFilteredSentenceBreakData : public UMemory {
 public:
-  LocalPointer<UCharsTrie>    fForwardsPartialTrie; //  Has ".a" for "a.M."
-  LocalPointer<UCharsTrie>    fBackwardsTrie; //  i.e. ".srM" for Mrs.
-  int32_t                     refcount;
   SimpleFilteredSentenceBreakData(UCharsTrie *forwards, UCharsTrie *backwards ) 
       : fForwardsPartialTrie(forwards), fBackwardsTrie(backwards), refcount(1) { }
-  virtual ~SimpleFilteredSentenceBreakData() {}
   SimpleFilteredSentenceBreakData *incr() { refcount++;  return this; }
   SimpleFilteredSentenceBreakData *decr() { if((--refcount) <= 0) delete this; return 0; }
+  virtual ~SimpleFilteredSentenceBreakData();
+
+  LocalPointer<UCharsTrie>    fForwardsPartialTrie; //  Has ".a" for "a.M."
+  LocalPointer<UCharsTrie>    fBackwardsTrie; //  i.e. ".srM" for Mrs.
+  int32_t                     refcount;
 };
 
+SimpleFilteredSentenceBreakData::~SimpleFilteredSentenceBreakData() {}
+
 /**
  * Concrete implementation
  */
index f969c271c5d6aaf0307d888d0eaa0d1ec0cba59f..d346af20bb77a29fa2eba4b8939237fa29651e6b 100644 (file)
@@ -167,6 +167,7 @@ NGramParser_IBM420::NGramParser_IBM420(const int32_t *theNgramList, const uint8_
        alef = 0x00;
 }
 
+NGramParser_IBM420::~NGramParser_IBM420() {}
 
 int32_t NGramParser_IBM420::isLamAlef(int32_t b)
 {
index 935a3e7e289166e4aeb457af50dd73f9360c957a..046da679f52a927dcf1bc7960745f2f8959194c4 100644 (file)
@@ -54,14 +54,15 @@ public:
 #if !UCONFIG_ONLY_HTML_CONVERSION
 class NGramParser_IBM420 : public NGramParser
 {
-private:
-       int32_t alef;
-       int32_t isLamAlef(int32_t b);
-       int32_t nextByte(InputText *det);
-       void parseCharacters(InputText *det);
-
 public:
     NGramParser_IBM420(const int32_t *theNgramList, const uint8_t *theCharMap);
+    ~NGramParser_IBM420();
+
+private:
+    int32_t alef;
+    int32_t isLamAlef(int32_t b);
+    int32_t nextByte(InputText *det);
+    void parseCharacters(InputText *det);
 };
 #endif
 
index 71ade13eb8f442d18bfd2681e5bb9d57bf677770..d7870d1041df8df4976cd9e45b949665999292e3 100644 (file)
@@ -24,6 +24,8 @@
 
 U_NAMESPACE_BEGIN
 
+ValueFormatter::~ValueFormatter() {}
+
 VisibleDigitsWithExponent &
 ValueFormatter::toVisibleDigitsWithExponent(
         int64_t value,
index 4370876730f413d523163d66ac3fd388b22a22ab..e985edd390e77007a8f9f698ff2d8bc33c6a14ca 100644 (file)
@@ -45,6 +45,8 @@ public:
     ValueFormatter() : fType(kFormatTypeCount) {
     }
 
+    virtual ~ValueFormatter();
+
     /**
      * This function is here only to support the protected round() method
      * in DecimalFormat. It serves no ther purpose than that.