Jeff King <peff@xxxxxxxx> writes: > But I think that is the wrong way to optimize it. We shouldn't be > storing any strings per-atom, but rather walking the parse tree to > produce a single output buffer. And the values should be cheap to fill > in, because we should parse the object as necessary up front. This is > more or less the way the pretty.c parser does it. I thought "as necessary" may be a bit tricky as populate_value() were taught to omit doing the whole get_object() thing when the values for used_atom[] are all computable without parsing the object at all, but it seems that over time the populate_value() callchain has degraded sufficiently to unconditionally call get_object() these days, so I agree that the arrangement does not have much optimization value, at least in the current code.