aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2016-09-30 19:58:11 +0200
committerMarcoFalke <falke.marco@gmail.com>2016-09-30 19:58:11 +0200
commit2ca7faab4205822b06dc2ab2bbda0a9a70fce7e0 (patch)
treefe714bb1bdfbd52842107b54c590cfe5d4c58b3c
parent3650668cdbbf369dd8f30c8e8eb5bb883325942d (diff)
downloadbitcoin-2ca7faab4205822b06dc2ab2bbda0a9a70fce7e0.tar.xz
Squashed 'src/univalue/' changes from daf1285..16a1f7f
16a1f7f Merge #3: Pull upstream 3f03bfd Merge pull request #27 from laanwj/2016_09_const_refs 5668ca3 Return const references from getKeys, getValues, get_str cedda14 Merge pull request #28 from MarcoFalke/patch-1 9f0b997 [travis] Work around osx libtool issue git-subtree-dir: src/univalue git-subtree-split: 16a1f7f6e9ed932bec7c7855003affea1e165fb5
-rw-r--r--.travis.yml2
-rw-r--r--include/univalue.h6
-rw-r--r--lib/univalue.cpp6
3 files changed, 7 insertions, 7 deletions
diff --git a/.travis.yml b/.travis.yml
index d318d9cc8f..132743d349 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,3 @@
-
language: cpp
compiler:
@@ -26,6 +25,7 @@ addons:
- pkg-config
before_script:
+ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew uninstall libtool; brew install libtool; fi
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
diff --git a/include/univalue.h b/include/univalue.h
index e48b905bfb..e8ce283519 100644
--- a/include/univalue.h
+++ b/include/univalue.h
@@ -142,10 +142,10 @@ private:
public:
// Strict type-specific getters, these throw std::runtime_error if the
// value is of unexpected type
- std::vector<std::string> getKeys() const;
- std::vector<UniValue> getValues() const;
+ const std::vector<std::string>& getKeys() const;
+ const std::vector<UniValue>& getValues() const;
bool get_bool() const;
- std::string get_str() const;
+ const std::string& get_str() const;
int get_int() const;
int64_t get_int64() const;
double get_real() const;
diff --git a/lib/univalue.cpp b/lib/univalue.cpp
index 1f8cee6d29..5a2860c13f 100644
--- a/lib/univalue.cpp
+++ b/lib/univalue.cpp
@@ -283,14 +283,14 @@ const UniValue& find_value(const UniValue& obj, const std::string& name)
return NullUniValue;
}
-std::vector<std::string> UniValue::getKeys() const
+const std::vector<std::string>& UniValue::getKeys() const
{
if (typ != VOBJ)
throw std::runtime_error("JSON value is not an object as expected");
return keys;
}
-std::vector<UniValue> UniValue::getValues() const
+const std::vector<UniValue>& UniValue::getValues() const
{
if (typ != VOBJ && typ != VARR)
throw std::runtime_error("JSON value is not an object or array as expected");
@@ -304,7 +304,7 @@ bool UniValue::get_bool() const
return getBool();
}
-std::string UniValue::get_str() const
+const std::string& UniValue::get_str() const
{
if (typ != VSTR)
throw std::runtime_error("JSON value is not a string as expected");