From 437d4aa7762646c9d167a7200ed72247f8b1203c Mon Sep 17 00:00:00 2001
From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Date: Fri, 15 Apr 2016 22:48:11 +0900
Subject: [PATCH] Fix compile error with Android NDK

---
 src/OptionHandlerImpl.cc |  8 ++++----
 src/RequestGroupMan.cc   | 10 ++++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/OptionHandlerImpl.cc b/src/OptionHandlerImpl.cc
index 6dec8503d..af17c1765 100644
--- a/src/OptionHandlerImpl.cc
+++ b/src/OptionHandlerImpl.cc
@@ -623,10 +623,10 @@ void OptimizeConcurrentDownloadsOptionHandler::parseArg(
     PrefPtr pref = PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFA;
     std::string* sptr = &coeff_a;
     for (;;) {
-      try {
-        double dbl = std::stod(*sptr);
-      }
-      catch (std::invalid_argument& ex) {
+      char *end;
+      errno = 0;
+      auto dbl = strtod(sptr->c_str(), &end);
+      if (errno != 0 || sptr->c_str() + sptr->size() != end) {
         throw DL_ABORT_EX(fmt("Bad number '%s'", sptr->c_str()));
       }
       option.put(pref, *sptr);
diff --git a/src/RequestGroupMan.cc b/src/RequestGroupMan.cc
index 5ca6f2b2e..1eaf75e38 100644
--- a/src/RequestGroupMan.cc
+++ b/src/RequestGroupMan.cc
@@ -138,10 +138,12 @@ bool RequestGroupMan::setupOptimizeConcurrentDownloads(void)
       option_->getAsBool(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS);
   if (optimizeConcurrentDownloads_) {
     if (option_->defined(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFA)) {
-      optimizeConcurrentDownloadsCoeffA_ =
-          std::stod(option_->get(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFA));
-      optimizeConcurrentDownloadsCoeffB_ =
-          std::stod(option_->get(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFB));
+      optimizeConcurrentDownloadsCoeffA_ = strtod(
+          option_->get(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFA).c_str(),
+          nullptr);
+      optimizeConcurrentDownloadsCoeffB_ = strtod(
+          option_->get(PREF_OPTIMIZE_CONCURRENT_DOWNLOADS_COEFFB).c_str(),
+          nullptr);
     }
   }
   return optimizeConcurrentDownloads_;
-- 
GitLab