Home | History | Annotate | Download | only in patches
      1 Index: /icu/trunk/source/common/rbbi.cpp
      2 ===================================================================
      3 --- /icu/trunk/source/common/rbbi.cpp	(revision 30203)
      4 +++ /icu/trunk/source/common/rbbi.cpp	(revision 30255)
      5 @@ -1566,17 +1566,6 @@
      6      //
      7      //  Clone the source BI into the caller-supplied buffer.
      8 -    //    TODO:  using an overloaded operator new to directly initialize the
      9 -    //           copy in the user's buffer would be better, but it doesn't seem
     10 -    //           to get along with namespaces.  Investigate why.
     11      //
     12 -    //           The memcpy is only safe with an empty (default constructed)
     13 -    //           break iterator.  Use on others can screw up reference counts
     14 -    //           to data.  memcpy-ing objects is not really a good idea...
     15 -    //
     16 -    RuleBasedBreakIterator localIter;        // Empty break iterator, source for memcpy
     17 -    RuleBasedBreakIterator *clone = (RuleBasedBreakIterator *)buf;
     18 -    uprv_memcpy(clone, &localIter, sizeof(RuleBasedBreakIterator)); // init C++ gorp, BreakIterator base class part
     19 -    clone->init();                // Init RuleBasedBreakIterator part, (user default constructor)
     20 -    *clone = *this;               // clone = the real BI we want.
     21 +    RuleBasedBreakIterator *clone = new(buf) RuleBasedBreakIterator(*this);
     22      clone->fBufferClone = TRUE;   // Flag to prevent deleting storage on close (From C code)
     23