diff options
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/batched_append.h | 2 | ||||
-rw-r--r-- | utils/sparse_vector.h | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/utils/batched_append.h b/utils/batched_append.h index 14a6d576..842f3209 100755 --- a/utils/batched_append.h +++ b/utils/batched_append.h @@ -13,7 +13,7 @@ void batched_append(Vector &v,SRange const& s) { template <class SRange,class Vector> void batched_append_swap(Vector &v,SRange & s) { - using namespace std; // to find the right swap + using namespace std; // to find the right swap via ADL size_t i=v.size(); size_t news=i+s.size(); v.resize(news); diff --git a/utils/sparse_vector.h b/utils/sparse_vector.h index 7ac85d1d..e3904403 100644 --- a/utils/sparse_vector.h +++ b/utils/sparse_vector.h @@ -145,7 +145,7 @@ public: if (!(s>>v)) error("reading value failed"); } std::pair<iterator,bool> vi=values_.insert(value_type(k,v)); - if (vi.second) { + if (!vi.second) { T &oldv=vi.first->second; switch(dp) { case NO_DUPS: error("read duplicate key with NO_DUPS. key=" @@ -157,9 +157,11 @@ public: } } } - return; + goto good; eof: if (!s.eof()) error("reading key failed (before EOF)"); + good: + s.clear(); // we may have reached eof, but that's no error. } friend inline std::ostream & operator<<(std::ostream &o,Self const& s) { |