I just did something that should have been done a long time ago -- made
all of SPRepr's data fields private.
This shouldn't have affected anything, but it turns out a lot of code
still was poking at the fields directly. I replaced direct accesses
with calls to the appropriate accessors.
In the process I moved most of the "real" functionality into SPRepr
member functions; the sp_repr_* functions remain as thin wrappers for
old-style direct access .... becomes:
Long-term, SPRepr will become a public interface (abstract) class in
repr.h, the current SPRepr will become SPReprImpl or similar, and the
wrapper sp_repr_* functions will become inline, then go away entirely.