| Index: chrome/browser/history/url_database.cc
|
| diff --git a/chrome/browser/history/url_database.cc b/chrome/browser/history/url_database.cc
|
| index c824a6edbfc355adcd11a286b890ef3443115908..6db3b100500c16bb243493cb10ec61f9197a37d3 100644
|
| --- a/chrome/browser/history/url_database.cc
|
| +++ b/chrome/browser/history/url_database.cc
|
| @@ -45,7 +45,7 @@ void URLDatabase::FillURLRow(SQLStatement& s, history::URLRow* i) {
|
| DCHECK(i);
|
| i->id_ = s.column_int64(0);
|
| i->url_ = GURL(s.column_string(1));
|
| - i->title_ = s.column_string16(2);
|
| + i->title_ = s.column_wstring(2);
|
| i->visit_count_ = s.column_int(3);
|
| i->typed_count_ = s.column_int(4);
|
| i->last_visit_ = Time::FromInternalValue(s.column_int64(5));
|
| @@ -239,12 +239,15 @@ void URLDatabase::AutocompleteForPrefix(const std::wstring& prefix,
|
| return;
|
|
|
| // We will find all strings between "prefix" and this string, which is prefix
|
| - // followed by the maximum character size.
|
| - std::wstring end_query(prefix);
|
| - end_query.push_back(std::numeric_limits<wchar_t>::max());
|
| -
|
| - statement->bind_wstring(0, prefix);
|
| - statement->bind_wstring(1, end_query);
|
| + // followed by the maximum character size. Use 8-bit strings for everything
|
| + // so we can be sure sqlite is comparing everything in 8-bit mode. Otherwise,
|
| + // it will have to convert strings either to UTF-8 or UTF-16 for comparison.
|
| + std::string prefix_utf8(WideToUTF8(prefix));
|
| + std::string end_query(prefix_utf8);
|
| + end_query.push_back(std::numeric_limits<unsigned char>::max());
|
| +
|
| + statement->bind_string(0, prefix_utf8);
|
| + statement->bind_string(1, end_query);
|
| statement->bind_int(2, static_cast<int>(max_results));
|
|
|
| while (statement->step() == SQLITE_ROW) {
|
| @@ -397,7 +400,7 @@ void URLDatabase::GetMostRecentKeywordSearchTerms(
|
|
|
| KeywordSearchTermVisit visit;
|
| while (statement->step() == SQLITE_ROW) {
|
| - visit.term = statement->column_string16(0);
|
| + visit.term = statement->column_wstring(0);
|
| visit.time = Time::FromInternalValue(statement->column_int64(1));
|
| matches->push_back(visit);
|
| }
|
|
|