Do not go past the end of an empty vector in CombineLinesForLanguage.

TBR=lararennie@google.com

Review URL: https://codereview.appspot.com/115120043

git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@310 38ededc0-08b8-5190-f2ac-b31f878777ad
diff --git a/cpp/src/address_formatter.cc b/cpp/src/address_formatter.cc
index 0bf5c5d..3440288 100644
--- a/cpp/src/address_formatter.cc
+++ b/cpp/src/address_formatter.cc
@@ -108,16 +108,17 @@
   return kCommaSeparator;
 }
 
-void CombineLinesForLanguage(
-    const std::vector<std::string>& lines, const std::string& language_tag,
-    std::string *line) {
-  if (lines.size() > 0) {
-    line->assign(lines[0]);
-  }
+void CombineLinesForLanguage(const std::vector<std::string>& lines,
+                             const std::string& language_tag,
+                             std::string* line) {
+  line->clear();
   std::string separator = GetLineSeparatorForLanguage(language_tag);
-  for (std::vector<std::string>::const_iterator it = lines.begin() + 1;
-       it < lines.end(); ++it) {
-    line->append(separator);
+  for (std::vector<std::string>::const_iterator it = lines.begin();
+       it != lines.end();
+       ++it) {
+    if (it != lines.begin()) {
+      line->append(separator);
+    }
     line->append(*it);
   }
 }
diff --git a/cpp/test/address_formatter_test.cc b/cpp/test/address_formatter_test.cc
index ca94a32..d20a344 100644
--- a/cpp/test/address_formatter_test.cc
+++ b/cpp/test/address_formatter_test.cc
@@ -28,6 +28,13 @@
 using i18n::addressinput::GetFormattedNationalAddressLine;
 using i18n::addressinput::GetStreetAddressLinesAsSingleLine;
 
+TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_EmptyAddress) {
+  AddressData address;
+  std::string result;
+  GetStreetAddressLinesAsSingleLine(address, &result);
+  EXPECT_TRUE(result.empty());
+}
+
 TEST(AddressFormatterTest, GetStreetAddressLinesAsSingleLine_1Line) {
   AddressData address;
   address.region_code = "US";  // Not used.