Fix iteration over named arguments (#1168)

This commit is contained in:
Victor Zverovich 2019-08-09 11:53:07 -07:00
parent b615eca964
commit 5360ab0b59
2 changed files with 2 additions and 3 deletions

View File

@ -1092,7 +1092,7 @@ template <typename Context, typename... Args> class format_arg_store {
basic_format_arg<Context>>;
// If the arguments are not packed, add one more element to mark the end.
value_type data_[num_args + (!is_packed || num_args == 0 ? 1 : 0)];
value_type data_[num_args + (num_args == 0 ? 1 : 0)];
friend class basic_format_args<Context>;

View File

@ -1260,9 +1260,8 @@ void arg_map<Context>::init(const basic_format_args<Context>& args) {
if (arg_type == internal::named_arg_type) push_back(args.values_[i]);
}
}
for (int i = 0;; ++i) {
for (int i = 0, n = args.max_size(); i < n; ++i) {
auto type = args.args_[i].type_;
if (type == internal::none_type) return;
if (type == internal::named_arg_type) push_back(args.args_[i].value_);
}
}