Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: source/common/rbbi.cpp

Issue 9425042: ICU: Merge upstream r30255 to fix a clang warning. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/icu46/
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « patches/changeset_30255.patch ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 *************************************************************************** 2 ***************************************************************************
3 * Copyright (C) 1999-2010 International Business Machines Corporation 3 * Copyright (C) 1999-2010 International Business Machines Corporation
4 * and others. All rights reserved. 4 * and others. All rights reserved.
5 *************************************************************************** 5 ***************************************************************************
6 */ 6 */
7 // 7 //
8 // file: rbbi.c Contains the implementation of the rule based break iterato r 8 // file: rbbi.c Contains the implementation of the rule based break iterato r
9 // runtime engine and the API implementation for 9 // runtime engine and the API implementation for
10 // class RuleBasedBreakIterator 10 // class RuleBasedBreakIterator
(...skipping 1486 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 if (clonedBI == 0) { 1497 if (clonedBI == 0) {
1498 status = U_MEMORY_ALLOCATION_ERROR; 1498 status = U_MEMORY_ALLOCATION_ERROR;
1499 } else { 1499 } else {
1500 status = U_SAFECLONE_ALLOCATED_WARNING; 1500 status = U_SAFECLONE_ALLOCATED_WARNING;
1501 } 1501 }
1502 return clonedBI; 1502 return clonedBI;
1503 } 1503 }
1504 1504
1505 // 1505 //
1506 // Clone the source BI into the caller-supplied buffer. 1506 // Clone the source BI into the caller-supplied buffer.
1507 // TODO: using an overloaded operator new to directly initialize the
1508 // copy in the user's buffer would be better, but it doesn't seem
1509 // to get along with namespaces. Investigate why.
1510 // 1507 //
1511 // The memcpy is only safe with an empty (default constructed) 1508 RuleBasedBreakIterator *clone = new(buf) RuleBasedBreakIterator(*this);
1512 // break iterator. Use on others can screw up reference counts
1513 // to data. memcpy-ing objects is not really a good idea...
1514 //
1515 RuleBasedBreakIterator localIter; // Empty break iterator, source for memcpy
1516 RuleBasedBreakIterator *clone = (RuleBasedBreakIterator *)buf;
1517 uprv_memcpy(clone, &localIter, sizeof(RuleBasedBreakIterator)); // init C++ gorp, BreakIterator base class part
1518 clone->init(); // Init RuleBasedBreakIterator part, (user def ault constructor)
1519 *clone = *this; // clone = the real BI we want.
1520 clone->fBufferClone = TRUE; // Flag to prevent deleting storage on close ( From C code) 1509 clone->fBufferClone = TRUE; // Flag to prevent deleting storage on close ( From C code)
1521 1510
1522 return clone; 1511 return clone;
1523 } 1512 }
1524 1513
1525 1514
1526 //------------------------------------------------------------------------------ - 1515 //------------------------------------------------------------------------------ -
1527 // 1516 //
1528 // isDictionaryChar Return true if the category lookup for this char 1517 // isDictionaryChar Return true if the category lookup for this char
1529 // indicates that it is in the set of dictionary lookup 1518 // indicates that it is in the set of dictionary lookup
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1872 }*/ 1861 }*/
1873 1862
1874 void RuleBasedBreakIterator::setBreakType(int32_t type) { 1863 void RuleBasedBreakIterator::setBreakType(int32_t type) {
1875 fBreakType = type; 1864 fBreakType = type;
1876 reset(); 1865 reset();
1877 } 1866 }
1878 1867
1879 U_NAMESPACE_END 1868 U_NAMESPACE_END
1880 1869
1881 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ 1870 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */
OLDNEW
« no previous file with comments | « patches/changeset_30255.patch ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698