summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/template_url_model.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/chrome/browser/template_url_model.cc b/chrome/browser/template_url_model.cc
index aebc1dd..a3ffd5f 100644
--- a/chrome/browser/template_url_model.cc
+++ b/chrome/browser/template_url_model.cc
@@ -604,11 +604,12 @@ void TemplateURLModel::OnWebDataServiceRequestDone(
// loading. Now that we've loaded we can nuke it.
prefs_default_search_provider_.reset();
- // Compiler won't convert std::vector<TemplateURL*> to
- // std::vector<const TemplateURL*>.
- std::vector<const TemplateURL*> template_urls =
- *reinterpret_cast<std::vector<const TemplateURL*>* >(
- &keyword_result.keywords);
+ // Compiler won't implicitly convert std::vector<TemplateURL*> to
+ // std::vector<const TemplateURL*>, and reinterpret_cast is unsafe,
+ // so we just copy it.
+ std::vector<const TemplateURL*> template_urls(keyword_result.keywords.begin(),
+ keyword_result.keywords.end());
+
const int resource_keyword_version =
TemplateURLPrepopulateData::GetDataVersion();
if (keyword_result.builtin_keyword_version != resource_keyword_version) {