Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / icu / patches / changeset_30255.patch
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)