summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-07 05:23:50 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-07 05:23:50 +0000
commit61f25cd0eac69e1e0435e9c1875a6d92154c21e7 (patch)
treea25d1d1235e61672c95d66a7a287cc47f175799f /chrome/browser
parente2ce1e0bbcc8f4336770a28107daff34a68514db (diff)
downloadchromium_src-61f25cd0eac69e1e0435e9c1875a6d92154c21e7.zip
chromium_src-61f25cd0eac69e1e0435e9c1875a6d92154c21e7.tar.gz
chromium_src-61f25cd0eac69e1e0435e9c1875a6d92154c21e7.tar.bz2
Revert 65329 - Revert 65272 - Autofill heapcheck and valgrind leak in PersonalDataManager unit test fixed
[Redness was not healed... so I'm reverting the revert] An early return in the WebDataService was the source of a leak in PersonalDataManagerTest.Refresh test. This fixes it. Also, some small cleanup in the test itself. BUG=61988 TEST=Memory bots stay green. Review URL: http://codereview.chromium.org/4612001 TBR=dhollowa@chromium.org Review URL: http://codereview.chromium.org/4641001 TBR=jar@chromium.org Review URL: http://codereview.chromium.org/4643001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65330 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/autofill/personal_data_manager_unittest.cc16
-rw-r--r--chrome/browser/webdata/web_data_service.cc2
2 files changed, 10 insertions, 8 deletions
diff --git a/chrome/browser/autofill/personal_data_manager_unittest.cc b/chrome/browser/autofill/personal_data_manager_unittest.cc
index 2d2d94f..2947e08 100644
--- a/chrome/browser/autofill/personal_data_manager_unittest.cc
+++ b/chrome/browser/autofill/personal_data_manager_unittest.cc
@@ -457,19 +457,19 @@ TEST_F(PersonalDataManagerTest, Refresh) {
EXPECT_EQ(profile0, *results1.at(0));
EXPECT_EQ(profile1, *results1.at(1));
- scoped_ptr<AutoFillProfile> profile2(new AutoFillProfile);
- autofill_test::SetProfileInfo(profile2.get(),
+ AutoFillProfile profile2;
+ autofill_test::SetProfileInfo(&profile2,
"Work", "Josephine", "Alicia", "Saenz",
"joewayne@me.xyz", "Fox", "1212 Center.", "Bld. 5", "Orlando", "FL",
"32801", "US", "19482937549", "13502849239");
// Adjust all labels.
- profile_pointers.push_back(profile2.get());
+ profile_pointers.push_back(&profile2);
AutoFillProfile::AdjustInferredLabels(&profile_pointers);
WebDataService* wds = profile_->GetWebDataService(Profile::EXPLICIT_ACCESS);
ASSERT_TRUE(wds);
- wds->AddAutoFillProfileGUID(*profile2.get());
+ wds->AddAutoFillProfileGUID(profile2);
personal_data_->Refresh();
@@ -483,21 +483,21 @@ TEST_F(PersonalDataManagerTest, Refresh) {
ASSERT_EQ(3U, results2.size());
EXPECT_EQ(profile0, *results2.at(0));
EXPECT_EQ(profile1, *results2.at(1));
- EXPECT_EQ(*profile2.get(), *results2.at(2));
+ EXPECT_EQ(profile2, *results2.at(2));
wds->RemoveAutoFillProfileGUID(profile1.guid());
- wds->RemoveAutoFillProfileGUID(profile2->guid());
+ wds->RemoveAutoFillProfileGUID(profile2.guid());
// Before telling the PDM to refresh, simulate an edit to one of the profiles
// via a SetProfile update (this would happen if the AutoFill window was
// open with a previous snapshot of the profiles, and something [e.g. sync]
// removed a profile from the browser. In this edge case, we will end up
// in a consistent state by dropping the write).
- profile2->SetInfo(AutoFillType(NAME_FIRST), ASCIIToUTF16("Jo"));
+ profile2.SetInfo(AutoFillType(NAME_FIRST), ASCIIToUTF16("Jo"));
update.clear();
update.push_back(profile0);
update.push_back(profile1);
- update.push_back(*profile2.get());
+ update.push_back(profile2);
personal_data_->SetProfiles(&update);
// And wait for the refresh.
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc
index d99fa73..d5ecd0f 100644
--- a/chrome/browser/webdata/web_data_service.cc
+++ b/chrome/browser/webdata/web_data_service.cc
@@ -1039,6 +1039,7 @@ void WebDataService::UpdateAutoFillProfileGUIDImpl(
// the caller will detect this on the next refresh.
AutoFillProfile* original_profile = NULL;
if (!db_->GetAutoFillProfileForGUID(profile.guid(), &original_profile)) {
+ request->RequestComplete();
return;
}
scoped_ptr<AutoFillProfile> scoped_profile(original_profile);
@@ -1157,6 +1158,7 @@ void WebDataService::UpdateCreditCardGUIDImpl(
// the write and the caller will detect this on the next refresh.
CreditCard* original_credit_card = NULL;
if (!db_->GetCreditCardForGUID(credit_card.guid(), &original_credit_card)) {
+ request->RequestComplete();
return;
}
scoped_ptr<CreditCard> scoped_credit_card(original_credit_card);