public:
double Value() const { return value_; }
size_t Count() const { return count_; }
- Stats* Child(const char* name) { return &children_[name]; }
- const std::unordered_map<const char*, Stats>& Children() const { return children_; }
+ Stats* Child(const char* name) { return &(*children_)[name]; }
+ const std::unordered_map<const char*, Stats>& Children() const { return *children_; }
void AddBytes(double bytes, size_t count = 1) { Add(bytes, count); }
void AddBits(double bits, size_t count = 1) { Add(bits / kBitsPerByte, count); }
double SumChildrenValues() const {
double sum = 0.0;
- for (auto it : children_) {
+ for (auto it : *children_) {
sum += it.second.Value();
}
return sum;
double value_ = 0.0; // Commutative sum of the collected statistic in basic units.
size_t count_ = 0; // The number of samples for this node.
- std::unordered_map<const char*, Stats> children_;
+ std::unordered_map<const char*, Stats>* children_;
};
} // namespace art