in metrics/src/main/java/com/facebook/battery/metrics/composite/CompositeMetrics.java [27:49]
public CompositeMetrics diff(@Nullable CompositeMetrics b, CompositeMetrics result) {
if (result == null) {
throw new IllegalArgumentException("CompositeMetrics doesn't support nullable results");
}
if (b == null) {
result.set(this);
} else {
for (int i = 0, size = mMetricsMap.size(); i < size; i++) {
Class c = mMetricsMap.keyAt(i);
boolean valid = isValid(c) && b.isValid(c);
if (valid) {
SystemMetrics resultMetric = result.getMetric(c);
if (resultMetric != null) {
getMetric(c).diff(b.getMetric(c), resultMetric);
}
}
result.setIsValid(c, valid);
}
}
return result;
}