summaryrefslogtreecommitdiffstats
path: root/chrome/browser/translate/translate_infobar_delegate.cc
diff options
context:
space:
mode:
authormad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-29 18:45:55 +0000
committermad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-29 18:45:55 +0000
commit0c8d28bf3961f295510bc6e00e841928b35783c1 (patch)
tree7519c206a8169f0d9089f11f61fb2f6247a07110 /chrome/browser/translate/translate_infobar_delegate.cc
parent0b6006406af742ca7637b928b87fa837c7b2e917 (diff)
downloadchromium_src-0c8d28bf3961f295510bc6e00e841928b35783c1.zip
chromium_src-0c8d28bf3961f295510bc6e00e841928b35783c1.tar.gz
chromium_src-0c8d28bf3961f295510bc6e00e841928b35783c1.tar.bz2
Fix a crash caused by unknown saved language.
The language index in the dump referred by the crbug is left to -1, meaning that the language passed to TranslateInfoBarDelegate's constructor... The call stack showed that the call came from an auto translate preference, so my only guess would be that a preference was saved for a language that is not available anymore, so I added code to protect against that. BUG=93291 TEST=TranslateManagerTest.UnsupportedSavedLanguage Review URL: http://codereview.chromium.org/7764003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98661 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate/translate_infobar_delegate.cc')
-rw-r--r--chrome/browser/translate/translate_infobar_delegate.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc
index 2054199..daba227 100644
--- a/chrome/browser/translate/translate_infobar_delegate.cc
+++ b/chrome/browser/translate/translate_infobar_delegate.cc
@@ -89,6 +89,7 @@ void TranslateInfoBarDelegate::SetOriginalLanguage(size_t language_index) {
void TranslateInfoBarDelegate::SetTargetLanguage(size_t language_index) {
DCHECK_LT(language_index, GetLanguageCount());
+ DCHECK_GE(language_index, 0U);
target_language_index_ = language_index;
if (infobar_view_)
infobar_view_->TargetLanguageChanged();
@@ -348,6 +349,7 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate(
if (language_code == target_language)
target_language_index_ = iter - languages_.begin();
}
+ DCHECK_NE(kNoIndex, target_language_index_);
}
bool TranslateInfoBarDelegate::ShouldExpire(