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

Unified Diff: source/i18n/stsearch.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/i18n/smpdtfmt.cpp ('k') | source/i18n/tblcoll.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/i18n/stsearch.cpp
diff --git a/source/i18n/stsearch.cpp b/source/i18n/stsearch.cpp
index 447f95f3b341ad024ac0797cd6de497e2c3149f8..9c45e11dad11b3ccf324a8f2471d34a46447628f 100644
--- a/source/i18n/stsearch.cpp
+++ b/source/i18n/stsearch.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2008 IBM and others. All rights reserved.
+* Copyright (C) 2001-2014 IBM and others. All rights reserved.
**********************************************************************
* Date Name Description
* 03/22/2000 helena Creation.
@@ -27,7 +27,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
BreakIterator *breakiter,
UErrorCode &status) :
SearchIterator(text, breakiter),
- m_collator_(),
m_pattern_(pattern)
{
if (U_FAILURE(status)) {
@@ -42,19 +41,7 @@ StringSearch::StringSearch(const UnicodeString &pattern,
uprv_free(m_search_);
m_search_ = NULL;
- // !!! dlf m_collator_ is an odd beast. basically it is an aliasing
- // wrapper around the internal collator and rules, which (here) are
- // owned by this stringsearch object. this means 1) it's destructor
- // _should not_ delete the ucollator or rules, and 2) changes made
- // to the exposed collator (setStrength etc) _should_ modify the
- // ucollator. thus the collator is not a copy-on-write alias, and it
- // needs to distinguish itself not merely from 'stand alone' colators
- // but also from copy-on-write ones. it needs additional state, which
- // setUCollator should set.
-
if (U_SUCCESS(status)) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -66,7 +53,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
BreakIterator *breakiter,
UErrorCode &status) :
SearchIterator(text, breakiter),
- m_collator_(),
m_pattern_(pattern)
{
if (U_FAILURE(status)) {
@@ -81,15 +67,13 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
m_pattern_.length(),
m_text_.getBuffer(),
- m_text_.length(), coll->ucollator,
+ m_text_.length(), coll->toUCollator(),
(UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
if (U_SUCCESS(status)) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -101,7 +85,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
BreakIterator *breakiter,
UErrorCode &status) :
SearchIterator(text, breakiter),
- m_collator_(),
m_pattern_(pattern)
{
if (U_FAILURE(status)) {
@@ -116,8 +99,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_search_ = NULL;
if (U_SUCCESS(status)) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -129,7 +110,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
BreakIterator *breakiter,
UErrorCode &status) :
SearchIterator(text, breakiter),
- m_collator_(),
m_pattern_(pattern)
{
if (U_FAILURE(status)) {
@@ -144,15 +124,13 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
m_pattern_.length(),
m_text_.getBuffer(),
- m_text_.length(), coll->ucollator,
+ m_text_.length(), coll->toUCollator(),
(UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
if (U_SUCCESS(status)) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -160,7 +138,6 @@ StringSearch::StringSearch(const UnicodeString &pattern,
StringSearch::StringSearch(const StringSearch &that) :
SearchIterator(that.m_text_, that.m_breakiterator_),
- m_collator_(),
m_pattern_(that.m_pattern_)
{
UErrorCode status = U_ZERO_ERROR;
@@ -183,8 +160,6 @@ StringSearch::StringSearch(const StringSearch &that) :
(UBreakIterator *)that.m_breakiterator_,
&status);
if (U_SUCCESS(status)) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -222,9 +197,7 @@ StringSearch & StringSearch::operator=(const StringSearch &that)
NULL, &status);
// Check null pointer
if (m_strsrch_ != NULL) {
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
- m_search_ = m_strsrch_->search;
+ m_search_ = m_strsrch_->search;
}
}
return *this;
@@ -274,15 +247,14 @@ void StringSearch::setText(CharacterIterator &text, UErrorCode &status)
RuleBasedCollator * StringSearch::getCollator() const
{
- return (RuleBasedCollator *)&m_collator_;
+ // Note the const_cast. It would be cleaner if this const method returned a const collator.
+ return RuleBasedCollator::rbcFromUCollator(const_cast<UCollator *>(m_strsrch_->collator));
}
void StringSearch::setCollator(RuleBasedCollator *coll, UErrorCode &status)
{
if (U_SUCCESS(status)) {
- usearch_setCollator(m_strsrch_, coll->getUCollator(), &status);
- // Alias the collator
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
+ usearch_setCollator(m_strsrch_, coll->toUCollator(), &status);
}
}
@@ -312,7 +284,7 @@ SearchIterator * StringSearch::safeClone(void) const
{
UErrorCode status = U_ZERO_ERROR;
StringSearch *result = new StringSearch(m_pattern_, m_text_,
- (RuleBasedCollator *)&m_collator_,
+ getCollator(),
m_breakiterator_,
status);
/* test for NULL */
@@ -335,7 +307,7 @@ int32_t StringSearch::handleNext(int32_t position, UErrorCode &status)
{
// values passed here are already in the pre-shift position
if (U_SUCCESS(status)) {
- if (m_strsrch_->pattern.CELength == 0) {
+ if (m_strsrch_->pattern.cesLength == 0) {
m_search_->matchedIndex =
m_search_->matchedIndex == USEARCH_DONE ?
getOffset() : m_search_->matchedIndex + 1;
@@ -433,7 +405,7 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status)
{
// values passed here are already in the pre-shift position
if (U_SUCCESS(status)) {
- if (m_strsrch_->pattern.CELength == 0) {
+ if (m_strsrch_->pattern.cesLength == 0) {
m_search_->matchedIndex =
(m_search_->matchedIndex == USEARCH_DONE ? getOffset() :
m_search_->matchedIndex);
« no previous file with comments | « source/i18n/smpdtfmt.cpp ('k') | source/i18n/tblcoll.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698