On Apr 4, 2012 9:17 AM, "Julian Foad" <julianf...@btopenworld.com> wrote: > > Greg Stein wrote: > >> Convert svn_client__wc_node_get_origin() to use svn_client__pathrev_t for > >> its output. > >> > >> * subversion/include/private/svn_client_private.h, > >> subversion/libsvn_client/util.c > >> (svn_client__wc_node_get_origin): Use pathrev_t for the output. > > > This revision certainly shows how pathrev_t is a simplifying concept. Very nice! > > That said: I'd recommend being wary in your work about the struct being an *input* param in public APIs. There are seriously heavy internal constraints on the struct members. (eg. pass a struct with a NULL uuid, or even a non-matching one) > > I don't have a recommendation right now for what happens if the struct is made public. I just wanted to raise a yellow flag. It seems best to keep it very private because of the difficult constraints/preconditions in its members. > > > Right, good point. I'd really like to see this (or something similar) become more widespread so I hope we can find a satisfactory solution.
It may be as simple as only returning const structs in the API. Or opaque. But certainly warnings like, "seriously, don't mess around in here. tweak at your own peril." :-) Cheers, -g