Index: chrome/browser/password_manager/native_backend_gnome_x.cc |
=================================================================== |
--- chrome/browser/password_manager/native_backend_gnome_x.cc (revision 97665) |
+++ chrome/browser/password_manager/native_backend_gnome_x.cc (working copy) |
@@ -382,7 +382,14 @@ |
GnomeKeyringResult GKRMethod::WaitResult(PasswordFormList* forms) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
event_.Wait(); |
- forms->swap(forms_); |
+ if (forms->empty()) { |
+ // Normal case. Avoid extra allocation by swapping. |
+ forms->swap(forms_); |
Evan Martin
2011/08/23 14:36:07
Is this performance critical? I wonder if it's wo
Mike Mammarella
2011/08/23 19:40:20
No, it's not performance critical. It would probab
|
+ } else { |
+ // Rare case. Append forms_ to *forms. |
+ forms->insert(forms->end(), forms_.begin(), forms_.end()); |
+ forms_.clear(); |
+ } |
return result_; |
} |