Chromium Code Reviews| Index: chrome/browser/webdata/autofill_table.cc |
| diff --git a/chrome/browser/webdata/autofill_table.cc b/chrome/browser/webdata/autofill_table.cc |
| index 588afbab097c336dd7a7a95cc7690e3116032c37..9378d3a773dc18bf7e6671a3de941aaa567ad309 100644 |
| --- a/chrome/browser/webdata/autofill_table.cc |
| +++ b/chrome/browser/webdata/autofill_table.cc |
| @@ -139,12 +139,11 @@ bool AddAutofillProfileNamesToProfile(sql::Connection* db, |
| "SELECT guid, first_name, middle_name, last_name " |
| "FROM autofill_profile_names " |
| "WHERE guid=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| s.BindString(0, profile->guid()); |
| + if (!s.is_valid()) |
| + return false; |
| + |
| std::vector<string16> first_names; |
| std::vector<string16> middle_names; |
| std::vector<string16> last_names; |
| @@ -154,6 +153,9 @@ bool AddAutofillProfileNamesToProfile(sql::Connection* db, |
| middle_names.push_back(s.ColumnString16(2)); |
| last_names.push_back(s.ColumnString16(3)); |
| } |
| + if (!s.Succeeded()) |
| + return false; |
|
Scott Hess - ex-Googler
2011/12/16 22:37:09
Yeah, I think this is a reasonable pattern for the
|
| + |
| profile->SetMultiInfo(NAME_FIRST, first_names); |
| profile->SetMultiInfo(NAME_MIDDLE, middle_names); |
| profile->SetMultiInfo(NAME_LAST, last_names); |
| @@ -166,17 +168,19 @@ bool AddAutofillProfileEmailsToProfile(sql::Connection* db, |
| "SELECT guid, email " |
| "FROM autofill_profile_emails " |
| "WHERE guid=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| s.BindString(0, profile->guid()); |
| + if (!s.is_valid()) |
| + return false; |
| + |
| std::vector<string16> emails; |
| while (s.Step()) { |
| DCHECK_EQ(profile->guid(), s.ColumnString(0)); |
| emails.push_back(s.ColumnString16(1)); |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| + |
| profile->SetMultiInfo(EMAIL_ADDRESS, emails); |
| return true; |
| } |
| @@ -187,19 +191,22 @@ bool AddAutofillProfilePhonesToProfile(sql::Connection* db, |
| "SELECT guid, type, number " |
| "FROM autofill_profile_phones " |
| "WHERE guid=? AND type=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - s.BindString(0, profile->guid()); |
| + |
| // Value used to be either [(0, phone), (1, fax)] but fax has been removed. |
| + s.BindString(0, profile->guid()); |
| s.BindInt(1, 0); |
| + if (!s.is_valid()) |
| + return false; |
| + |
| std::vector<string16> numbers; |
| while (s.Step()) { |
| DCHECK_EQ(profile->guid(), s.ColumnString(0)); |
| numbers.push_back(s.ColumnString16(2)); |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| + |
| profile->SetMultiInfo(PHONE_HOME_WHOLE_NUMBER, numbers); |
| return true; |
| } |
| @@ -221,19 +228,13 @@ bool AddAutofillProfileNames(const AutofillProfile& profile, |
| "INSERT INTO autofill_profile_names" |
| " (guid, first_name, middle_name, last_name) " |
| "VALUES (?,?,?,?)")); |
| - if (!s) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| s.BindString(0, profile.guid()); |
| s.BindString16(1, first_names[i]); |
| s.BindString16(2, middle_names[i]); |
| s.BindString16(3, last_names[i]); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| } |
| return true; |
| } |
| @@ -249,18 +250,13 @@ bool AddAutofillProfileEmails(const AutofillProfile& profile, |
| "INSERT INTO autofill_profile_emails" |
| " (guid, email) " |
| "VALUES (?,?)")); |
| - if (!s) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| s.BindString(0, profile.guid()); |
| s.BindString16(1, emails[i]); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| } |
| + |
| return true; |
| } |
| @@ -275,19 +271,13 @@ bool AddAutofillProfilePhones(const AutofillProfile& profile, |
| "INSERT INTO autofill_profile_phones" |
| " (guid, type, number) " |
| "VALUES (?,?,?)")); |
| - if (!s) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| s.BindString(0, profile.guid()); |
| // Value used to be either [(0, phone), (1, fax)] but fax has been removed. |
| s.BindInt(1, 0); |
| s.BindString16(2, numbers[i]); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| } |
| return true; |
| @@ -310,34 +300,22 @@ bool AddAutofillProfilePieces(const AutofillProfile& profile, |
| bool RemoveAutofillProfilePieces(const std::string& guid, sql::Connection* db) { |
| sql::Statement s1(db->GetUniqueStatement( |
| "DELETE FROM autofill_profile_names WHERE guid = ?")); |
| - if (!s1) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s1.BindString(0, guid); |
| + |
| if (!s1.Run()) |
| return false; |
| sql::Statement s2(db->GetUniqueStatement( |
| "DELETE FROM autofill_profile_emails WHERE guid = ?")); |
| - if (!s2) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s2.BindString(0, guid); |
| + |
| if (!s2.Run()) |
| return false; |
| sql::Statement s3(db->GetUniqueStatement( |
| "DELETE FROM autofill_profile_phones WHERE guid = ?")); |
| - if (!s3) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s3.BindString(0, guid); |
| + |
| return s3.Run(); |
| } |
| @@ -387,11 +365,6 @@ bool AutofillTable::GetFormValuesForElementName(const string16& name, |
| "WHERE name = ? " |
| "ORDER BY count DESC " |
| "LIMIT ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, name); |
| s.BindInt(1, limit); |
| } else { |
| @@ -406,11 +379,6 @@ bool AutofillTable::GetFormValuesForElementName(const string16& name, |
| "value_lower < ? " |
| "ORDER BY count DESC " |
| "LIMIT ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, name); |
| s.BindString16(1, prefix_lower); |
| s.BindString16(2, next_prefix); |
| @@ -434,10 +402,6 @@ bool AutofillTable::RemoveFormElementsAddedBetween( |
| "SELECT DISTINCT a.pair_id, a.name, a.value " |
| "FROM autofill_dates ad JOIN autofill a ON ad.pair_id = a.pair_id " |
| "WHERE ad.date_created >= ? AND ad.date_created < ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement 1 prepare failed"; |
| - return false; |
| - } |
| s.BindInt64(0, delete_begin.ToTimeT()); |
| s.BindInt64(1, |
| delete_end.is_null() ? |
| @@ -450,11 +414,8 @@ bool AutofillTable::RemoveFormElementsAddedBetween( |
| s.ColumnString16(1), |
| s.ColumnString16(2))); |
| } |
| - |
| - if (!s.Succeeded()) { |
| - NOTREACHED(); |
| + if (!s.Succeeded()) |
| return false; |
| - } |
| for (AutofillElementList::iterator itr = elements.begin(); |
| itr != elements.end(); itr++) { |
| @@ -482,10 +443,6 @@ bool AutofillTable::RemoveFormElementForTimeRange(int64 pair_id, |
| sql::Statement s(db_->GetUniqueStatement( |
| "DELETE FROM autofill_dates WHERE pair_id = ? AND " |
| "date_created >= ? AND date_created < ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement 1 prepare failed"; |
| - return false; |
| - } |
| s.BindInt64(0, pair_id); |
| s.BindInt64(1, delete_begin.is_null() ? 0 : delete_begin.ToTimeT()); |
| s.BindInt64(2, delete_end.is_null() ? std::numeric_limits<int64>::max() : |
| @@ -523,17 +480,18 @@ bool AutofillTable::GetIDAndCountOfFormElement( |
| const FormField& element, |
| int64* pair_id, |
| int* count) { |
| + DCHECK(pair_id); |
| + DCHECK(count); |
| + |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT pair_id, count FROM autofill " |
| "WHERE name = ? AND value = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, element.name); |
| s.BindString16(1, element.value); |
| + if (!s.is_valid()) |
| + return false; |
| + |
| *pair_id = 0; |
| *count = 0; |
| @@ -546,13 +504,9 @@ bool AutofillTable::GetIDAndCountOfFormElement( |
| } |
| bool AutofillTable::GetCountOfFormElement(int64 pair_id, int* count) { |
| + DCHECK(count); |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT count FROM autofill WHERE pair_id = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindInt64(0, pair_id); |
| if (s.Step()) { |
| @@ -565,38 +519,23 @@ bool AutofillTable::GetCountOfFormElement(int64 pair_id, int* count) { |
| bool AutofillTable::SetCountOfFormElement(int64 pair_id, int count) { |
| sql::Statement s(db_->GetUniqueStatement( |
| "UPDATE autofill SET count = ? WHERE pair_id = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindInt(0, count); |
| s.BindInt64(1, pair_id); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| - return true; |
| + return s.Run(); |
| } |
| bool AutofillTable::InsertFormElement(const FormField& element, |
| int64* pair_id) { |
| + DCHECK(pair_id); |
| sql::Statement s(db_->GetUniqueStatement( |
| "INSERT INTO autofill (name, value, value_lower) VALUES (?,?,?)")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, element.name); |
| s.BindString16(1, element.value); |
| s.BindString16(2, base::i18n::ToLower(element.value)); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| *pair_id = db_->GetLastInsertRowId(); |
| return true; |
| @@ -607,20 +546,10 @@ bool AutofillTable::InsertPairIDAndDate(int64 pair_id, |
| sql::Statement s(db_->GetUniqueStatement( |
| "INSERT INTO autofill_dates " |
| "(pair_id, date_created) VALUES (?, ?)")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindInt64(0, pair_id); |
| s.BindInt64(1, date_created.ToTimeT()); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| - |
| - return true; |
| + return s.Run(); |
| } |
| bool AutofillTable::AddFormFieldValuesTime( |
| @@ -649,14 +578,14 @@ bool AutofillTable::AddFormFieldValuesTime( |
| bool AutofillTable::ClearAutofillEmptyValueElements() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT pair_id FROM autofill WHERE TRIM(value)= \"\"")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| + if (!s.is_valid()) |
| return false; |
| - } |
| std::set<int64> ids; |
| while (s.Step()) |
| ids.insert(s.ColumnInt64(0)); |
| + if (!s.Succeeded()) |
| + return false; |
| bool success = true; |
| for (std::set<int64>::const_iterator iter = ids.begin(); iter != ids.end(); |
| @@ -674,11 +603,6 @@ bool AutofillTable::GetAllAutofillEntries(std::vector<AutofillEntry>* entries) { |
| "SELECT name, value, date_created FROM autofill a JOIN " |
| "autofill_dates ad ON a.pair_id=ad.pair_id")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| bool first_entry = true; |
| AutofillKey* current_key_ptr = NULL; |
| std::vector<Time>* timestamps_ptr = NULL; |
| @@ -712,6 +636,10 @@ bool AutofillTable::GetAllAutofillEntries(std::vector<AutofillEntry>* entries) { |
| timestamps_ptr->push_back(time); |
| } |
| } |
| + |
| + if (!s.Succeeded()) |
| + return false; |
| + |
| // If there is at least one result returned, first_entry will be false. |
| // For this case we need to do a final cleanup step. |
| if (!first_entry) { |
| @@ -732,14 +660,9 @@ bool AutofillTable::GetAutofillTimestamps(const string16& name, |
| "SELECT date_created FROM autofill a JOIN " |
| "autofill_dates ad ON a.pair_id=ad.pair_id " |
| "WHERE a.name = ? AND a.value = ?")); |
| - |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, name); |
| s.BindString16(1, value); |
| + |
| while (s.Step()) |
| timestamps->push_back(Time::FromTimeT(s.ColumnInt64(0))); |
| @@ -756,13 +679,12 @@ bool AutofillTable::UpdateAutofillEntries( |
| std::string sql = "SELECT pair_id FROM autofill " |
| "WHERE name = ? AND value = ?"; |
| sql::Statement s(db_->GetUniqueStatement(sql.c_str())); |
| - if (!s.is_valid()) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, entries[i].key().name()); |
| s.BindString16(1, entries[i].key().value()); |
| + |
| + if (!s.is_valid()) |
| + return false; |
| + |
| if (s.Step()) { |
| if (!RemoveFormElementForID(s.ColumnInt64(0))) |
| return false; |
| @@ -782,20 +704,13 @@ bool AutofillTable::InsertAutofillEntry(const AutofillEntry& entry) { |
| std::string sql = "INSERT INTO autofill (name, value, value_lower, count) " |
| "VALUES (?, ?, ?, ?)"; |
| sql::Statement s(db_->GetUniqueStatement(sql.c_str())); |
| - if (!s.is_valid()) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString16(0, entry.key().name()); |
| s.BindString16(1, entry.key().value()); |
| s.BindString16(2, base::i18n::ToLower(entry.key().value())); |
| s.BindInt(3, entry.timestamps().size()); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| int64 pair_id = db_->GetLastInsertRowId(); |
| for (size_t i = 0; i < entry.timestamps().size(); i++) { |
| @@ -838,10 +753,6 @@ bool AutofillTable::RemoveFormElement(const string16& name, |
| // Find the id for that pair. |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT pair_id FROM autofill WHERE name = ? AND value= ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement 1 prepare failed"; |
| - return false; |
| - } |
| s.BindString16(0, name); |
| s.BindString16(1, value); |
| @@ -859,19 +770,9 @@ bool AutofillTable::AddAutofillProfile(const AutofillProfile& profile) { |
| "(guid, company_name, address_line_1, address_line_2, city, state," |
| " zipcode, country, country_code, date_modified)" |
| "VALUES (?,?,?,?,?,?,?,?,?,?)")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| BindAutofillProfileToStatement(profile, &s); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| - |
| - if (!s.Succeeded()) |
| + if (!s.Run()) |
| return false; |
| return AddAutofillProfilePieces(profile, db_); |
| @@ -886,16 +787,9 @@ bool AutofillTable::GetAutofillProfile(const std::string& guid, |
| " zipcode, country, country_code, date_modified " |
| "FROM autofill_profiles " |
| "WHERE guid=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString(0, guid); |
| - if (!s.Step()) |
| - return false; |
| - if (!s.Succeeded()) |
| + if (!s.Step()) |
| return false; |
| scoped_ptr<AutofillProfile> p(AutofillProfileFromStatement(s)); |
| @@ -921,10 +815,6 @@ bool AutofillTable::GetAutofillProfiles( |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT guid " |
| "FROM autofill_profiles")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| while (s.Step()) { |
| std::string guid = s.ColumnString(0); |
| @@ -995,13 +885,9 @@ bool AutofillTable::UpdateAutofillProfileMulti(const AutofillProfile& profile) { |
| " city=?, state=?, zipcode=?, country=?, country_code=?, " |
| " date_modified=? " |
| "WHERE guid=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| BindAutofillProfileToStatement(profile, &s); |
| s.BindString(10, profile.guid()); |
| + |
| bool result = s.Run(); |
| DCHECK_GT(db_->GetLastChangeCount(), 0); |
| if (!result) |
| @@ -1020,27 +906,17 @@ bool AutofillTable::RemoveAutofillProfile(const std::string& guid) { |
| if (IsAutofillGUIDInTrash(guid)) { |
| sql::Statement s_trash(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profiles_trash WHERE guid = ?")); |
| - if (!s_trash) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| s_trash.BindString(0, guid); |
| - if (!s_trash.Run()) { |
| - NOTREACHED() << "Expected item in trash."; |
| - return false; |
| - } |
| - return true; |
| + bool success = s_trash.Run(); |
| + DCHECK_GT(db_->GetLastChangeCount(), 0) << "Expected item in trash"; |
| + return success; |
| } |
| sql::Statement s(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profiles WHERE guid = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString(0, guid); |
| + |
| if (!s.Run()) |
| return false; |
| @@ -1050,45 +926,26 @@ bool AutofillTable::RemoveAutofillProfile(const std::string& guid) { |
| bool AutofillTable::ClearAutofillProfiles() { |
| sql::Statement s1(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profiles")); |
| - if (!s1) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| if (!s1.Run()) |
| return false; |
| sql::Statement s2(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profile_names")); |
| - if (!s2) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| if (!s2.Run()) |
| return false; |
| sql::Statement s3(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profile_emails")); |
| - if (!s3) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| if (!s3.Run()) |
| return false; |
| sql::Statement s4(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profile_phones")); |
| - if (!s4) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| - if (!s4.Run()) |
| - return false; |
| - return true; |
| + return s4.Run(); |
| } |
| bool AutofillTable::AddCreditCard(const CreditCard& credit_card) { |
| @@ -1097,20 +954,13 @@ bool AutofillTable::AddCreditCard(const CreditCard& credit_card) { |
| "(guid, name_on_card, expiration_month, expiration_year, " |
| "card_number_encrypted, date_modified)" |
| "VALUES (?,?,?,?,?,?)")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| BindCreditCardToStatement(credit_card, &s); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| + if (!s.Run()) |
| return false; |
| - } |
| DCHECK_GT(db_->GetLastChangeCount(), 0); |
| - return s.Succeeded(); |
| + return true; |
| } |
| bool AutofillTable::GetCreditCard(const std::string& guid, |
| @@ -1121,18 +971,13 @@ bool AutofillTable::GetCreditCard(const std::string& guid, |
| "card_number_encrypted, date_modified " |
| "FROM credit_cards " |
| "WHERE guid = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString(0, guid); |
| + |
| if (!s.Step()) |
| return false; |
| *credit_card = CreditCardFromStatement(s); |
| - |
| - return s.Succeeded(); |
| + return true; |
| } |
| bool AutofillTable::GetCreditCards( |
| @@ -1143,10 +988,6 @@ bool AutofillTable::GetCreditCards( |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT guid " |
| "FROM credit_cards")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| while (s.Step()) { |
| std::string guid = s.ColumnString(0); |
| @@ -1176,13 +1017,9 @@ bool AutofillTable::UpdateCreditCard(const CreditCard& credit_card) { |
| "SET guid=?, name_on_card=?, expiration_month=?, " |
| " expiration_year=?, card_number_encrypted=?, date_modified=? " |
| "WHERE guid=?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| BindCreditCardToStatement(credit_card, &s); |
| s.BindString(6, credit_card.guid()); |
| + |
| bool result = s.Run(); |
| DCHECK_GT(db_->GetLastChangeCount(), 0); |
| return result; |
| @@ -1192,12 +1029,8 @@ bool AutofillTable::RemoveCreditCard(const std::string& guid) { |
| DCHECK(guid::IsValidGUID(guid)); |
| sql::Statement s(db_->GetUniqueStatement( |
| "DELETE FROM credit_cards WHERE guid = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString(0, guid); |
| + |
| return s.Run(); |
| } |
| @@ -1217,73 +1050,50 @@ bool AutofillTable::RemoveAutofillProfilesAndCreditCardsModifiedBetween( |
| sql::Statement s_profiles_get(db_->GetUniqueStatement( |
| "SELECT guid FROM autofill_profiles " |
| "WHERE date_modified >= ? AND date_modified < ?")); |
| - if (!s_profiles_get) { |
| - NOTREACHED() << "Autofill profiles statement prepare failed"; |
| - return false; |
| - } |
| - |
| s_profiles_get.BindInt64(0, delete_begin_t); |
| s_profiles_get.BindInt64(1, delete_end_t); |
| + |
| profile_guids->clear(); |
| while (s_profiles_get.Step()) { |
| std::string guid = s_profiles_get.ColumnString(0); |
| profile_guids->push_back(guid); |
| } |
| + if (!s_profiles_get.Succeeded()) |
| + return false; |
|
Scott Hess - ex-Googler
2011/12/16 22:37:09
I think that, given that the caller already is com
Greg Billock
2011/12/21 21:43:03
Added documentation for this. Checked caller; it i
|
| // Remove Autofill profiles in the time range. |
| sql::Statement s_profiles(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profiles " |
| "WHERE date_modified >= ? AND date_modified < ?")); |
| - if (!s_profiles) { |
| - NOTREACHED() << "Autofill profiles statement prepare failed"; |
| - return false; |
| - } |
| - |
| s_profiles.BindInt64(0, delete_begin_t); |
| s_profiles.BindInt64(1, delete_end_t); |
| - s_profiles.Run(); |
| - if (!s_profiles.Succeeded()) { |
| - NOTREACHED(); |
| + if (!s_profiles.Run()) |
| return false; |
| - } |
| // Remember Autofill credit cards in the time range. |
| sql::Statement s_credit_cards_get(db_->GetUniqueStatement( |
| "SELECT guid FROM credit_cards " |
| "WHERE date_modified >= ? AND date_modified < ?")); |
| - if (!s_credit_cards_get) { |
| - NOTREACHED() << "Autofill profiles statement prepare failed"; |
| - return false; |
| - } |
| - |
| s_credit_cards_get.BindInt64(0, delete_begin_t); |
| s_credit_cards_get.BindInt64(1, delete_end_t); |
| + |
| credit_card_guids->clear(); |
| while (s_credit_cards_get.Step()) { |
| std::string guid = s_credit_cards_get.ColumnString(0); |
| credit_card_guids->push_back(guid); |
| } |
| + if (!s_credit_cards_get.Succeeded()) |
| + return false; |
| // Remove Autofill credit cards in the time range. |
| sql::Statement s_credit_cards(db_->GetUniqueStatement( |
| "DELETE FROM credit_cards " |
| "WHERE date_modified >= ? AND date_modified < ?")); |
| - if (!s_credit_cards) { |
| - NOTREACHED() << "Autofill credit cards statement prepare failed"; |
| - return false; |
| - } |
| - |
| s_credit_cards.BindInt64(0, delete_begin_t); |
| s_credit_cards.BindInt64(1, delete_end_t); |
| - s_credit_cards.Run(); |
| - |
| - if (!s_credit_cards.Succeeded()) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| - return true; |
| + return s_credit_cards.Run(); |
| } |
| bool AutofillTable::GetAutofillProfilesInTrash( |
| @@ -1293,10 +1103,6 @@ bool AutofillTable::GetAutofillProfilesInTrash( |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT guid " |
| "FROM autofill_profiles_trash")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| while (s.Step()) { |
| std::string guid = s.ColumnString(0); |
| @@ -1309,10 +1115,6 @@ bool AutofillTable::GetAutofillProfilesInTrash( |
| bool AutofillTable::EmptyAutofillProfilesTrash() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "DELETE FROM autofill_profiles_trash")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| return s.Run(); |
| } |
| @@ -1321,11 +1123,8 @@ bool AutofillTable::EmptyAutofillProfilesTrash() { |
| bool AutofillTable::RemoveFormElementForID(int64 pair_id) { |
| sql::Statement s(db_->GetUniqueStatement( |
| "DELETE FROM autofill WHERE pair_id = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| s.BindInt64(0, pair_id); |
| + |
| if (s.Run()) |
| return RemoveFormElementForTimeRange(pair_id, Time(), Time(), NULL); |
| @@ -1337,27 +1136,15 @@ bool AutofillTable::AddAutofillGUIDToTrash(const std::string& guid) { |
| "INSERT INTO autofill_profiles_trash" |
| " (guid) " |
| "VALUES (?)")); |
| - if (!s) { |
| - NOTREACHED(); |
| - return sql::INIT_FAILURE; |
| - } |
| - |
| s.BindString(0, guid); |
| - if (!s.Run()) { |
| - NOTREACHED(); |
| - return false; |
| - } |
| - return true; |
| + |
| + return s.Run(); |
| } |
| bool AutofillTable::IsAutofillProfilesTrashEmpty() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT guid " |
| "FROM autofill_profiles_trash")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| return !s.Step(); |
| } |
| @@ -1367,12 +1154,8 @@ bool AutofillTable::IsAutofillGUIDInTrash(const std::string& guid) { |
| "SELECT guid " |
| "FROM autofill_profiles_trash " |
| "WHERE guid = ?")); |
| - if (!s) { |
| - NOTREACHED() << "Statement prepare failed"; |
| - return false; |
| - } |
| - |
| s.BindString(0, guid); |
| + |
| return s.Step(); |
| } |
| @@ -1635,26 +1418,26 @@ bool AutofillTable::MigrateToVersion27UpdateLegacyCreditCards() { |
| "FROM autofill_profiles, credit_cards " |
| "WHERE credit_cards.billing_address = autofill_profiles.label"; |
| sql::Statement s(db_->GetUniqueStatement(stmt.c_str())); |
| - if (!s) |
| - return false; |
| std::map<int, int> cc_billing_map; |
| while (s.Step()) |
| cc_billing_map[s.ColumnInt(0)] = s.ColumnInt(1); |
| + if (!s.Succeeded()) |
| + return false; |
| // Windows already stores the IDs as strings in |billing_address|. Try |
| // to convert those. |
| if (cc_billing_map.empty()) { |
| std::string stmt = "SELECT unique_id,billing_address FROM credit_cards"; |
| sql::Statement s(db_->GetUniqueStatement(stmt.c_str())); |
| - if (!s) |
| - return false; |
| while (s.Step()) { |
| int id = 0; |
| if (base::StringToInt(s.ColumnString(1), &id)) |
| cc_billing_map[s.ColumnInt(0)] = id; |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| } |
| if (!db_->Execute("CREATE TABLE credit_cards_temp ( " |
| @@ -1693,9 +1476,6 @@ bool AutofillTable::MigrateToVersion27UpdateLegacyCreditCards() { |
| sql::Statement s(db_->GetCachedStatement( |
| SQL_FROM_HERE, |
| "UPDATE credit_cards SET billing_address=? WHERE unique_id=?")); |
| - if (!s) |
| - return false; |
| - |
| s.BindInt(0, (*iter).second); |
| s.BindInt(1, (*iter).first); |
| @@ -1716,9 +1496,6 @@ bool AutofillTable::MigrateToVersion30AddDateModifed() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "UPDATE autofill_profiles SET date_modified=?")); |
| - if (!s) |
| - return false; |
| - |
| s.BindInt64(0, Time::Now().ToTimeT()); |
| if (!s.Run()) |
| @@ -1734,9 +1511,6 @@ bool AutofillTable::MigrateToVersion30AddDateModifed() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "UPDATE credit_cards SET date_modified=?")); |
| - if (!s) |
| - return false; |
| - |
| s.BindInt64(0, Time::Now().ToTimeT()); |
| if (!s.Run()) |
| @@ -1760,21 +1534,19 @@ bool AutofillTable::MigrateToVersion31AddGUIDToCreditCardsAndProfiles() { |
| sql::Statement s(db_->GetUniqueStatement("SELECT unique_id " |
| "FROM autofill_profiles")); |
| - if (!s) |
| - return false; |
| while (s.Step()) { |
| sql::Statement update_s( |
| db_->GetUniqueStatement("UPDATE autofill_profiles " |
| "SET guid=? WHERE unique_id=?")); |
| - if (!update_s) |
| - return false; |
| update_s.BindString(0, guid::GenerateGUID()); |
| update_s.BindInt(1, s.ColumnInt(0)); |
| if (!update_s.Run()) |
| return false; |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| } |
| // Note that we need to check for the guid column's existence due to the |
| @@ -1790,21 +1562,19 @@ bool AutofillTable::MigrateToVersion31AddGUIDToCreditCardsAndProfiles() { |
| sql::Statement s(db_->GetUniqueStatement("SELECT unique_id " |
| "FROM credit_cards")); |
| - if (!s) |
| - return false; |
| while (s.Step()) { |
| sql::Statement update_s( |
| db_->GetUniqueStatement("UPDATE credit_cards " |
| "set guid=? WHERE unique_id=?")); |
| - if (!update_s) |
| - return false; |
| update_s.BindString(0, guid::GenerateGUID()); |
| update_s.BindInt(1, s.ColumnInt(0)); |
| if (!update_s.Run()) |
| return false; |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| } |
| return true; |
| @@ -1906,6 +1676,7 @@ bool AutofillTable::MigrateToVersion33ProfilesBasedOnFirstName() { |
| "company_name, address_line_1, address_line_2, city, state, " |
| "zipcode, country, phone, date_modified " |
| "FROM autofill_profiles")); |
| + |
| while (s.Step()) { |
| AutofillProfile profile; |
| profile.set_guid(s.ColumnString(0)); |
| @@ -1930,9 +1701,6 @@ bool AutofillTable::MigrateToVersion33ProfilesBasedOnFirstName() { |
| "(guid, company_name, address_line_1, address_line_2, city," |
| " state, zipcode, country, date_modified)" |
| "VALUES (?,?,?,?,?,?,?,?,?)")); |
| - if (!s) |
| - return false; |
| - |
| s_insert.BindString(0, profile.guid()); |
| s_insert.BindString16(1, profile.GetInfo(COMPANY_NAME)); |
| s_insert.BindString16(2, profile.GetInfo(ADDRESS_HOME_LINE1)); |
| @@ -1949,7 +1717,9 @@ bool AutofillTable::MigrateToVersion33ProfilesBasedOnFirstName() { |
| // Add the other bits: names, emails, and phone numbers. |
| if (!AddAutofillProfilePieces(profile, db_)) |
| return false; |
| - } |
| + } // endwhile |
| + if (!s.Succeeded()) |
| + return false; |
| if (!db_->Execute("DROP TABLE autofill_profiles")) |
| return false; |
| @@ -2005,15 +1775,10 @@ bool AutofillTable::MigrateToVersion34ProfilesBasedOnCountryCode() { |
| sql::Statement s(db_->GetUniqueStatement("SELECT guid, country " |
| "FROM autofill_profiles")); |
| - if (!s) |
| - return false; |
| - |
| while (s.Step()) { |
| sql::Statement update_s( |
| db_->GetUniqueStatement("UPDATE autofill_profiles " |
| "SET country_code=? WHERE guid=?")); |
| - if (!update_s) |
| - return false; |
| string16 country = s.ColumnString16(1); |
| std::string app_locale = AutofillCountry::ApplicationLocale(); |
| @@ -2024,6 +1789,8 @@ bool AutofillTable::MigrateToVersion34ProfilesBasedOnCountryCode() { |
| if (!update_s.Run()) |
| return false; |
| } |
| + if (!s.Succeeded()) |
| + return false; |
| } |
| return true; |
| @@ -2044,8 +1811,6 @@ bool AutofillTable::MigrateToVersion35GreatBritainCountryCodes() { |
| bool AutofillTable::MigrateToVersion37MergeAndCullOlderProfiles() { |
| sql::Statement s(db_->GetUniqueStatement( |
| "SELECT guid, date_modified FROM autofill_profiles")); |
| - if (!s) |
| - return false; |
| // Accumulate the good profiles. |
| std::vector<AutofillProfile> accumulated_profiles; |
| @@ -2084,7 +1849,9 @@ bool AutofillTable::MigrateToVersion37MergeAndCullOlderProfiles() { |
| // An invalid profile, so trash it. |
| AddAutofillGUIDToTrash(p->guid()); |
| } |
| - } |
| + } // endwhile |
| + if (!s.Succeeded()) |
| + return false; |
| // Drop the current profiles. |
| if (!ClearAutofillProfiles()) |
| @@ -2109,6 +1876,7 @@ bool AutofillTable::MigrateToVersion37MergeAndCullOlderProfiles() { |
| "WHERE guid=?")); |
| s_date.BindInt64(0, date_item->second); |
| s_date.BindString(1, iter->guid()); |
| + |
| if (!s_date.Run()) |
| return false; |
| } |