Jeremy Whitlock wrote on Sat, 11 Oct 2008 at 08:53 -0600:
> > Good to hear that. (I still don't understand how it could have worked,
> > though.)
>
> Everything looks sound. It compiles because all of the stuff that is
> public to all systems only reference structures and functions defined
> in the Subversion headers.
That's the point. The declarations of svn_auth_*keychain* were excluded
by the (accidental) line:
-#if defined(DARWIN) || defined(DOXYGEN) || defined(CTYPESGEN)
+#if defined(DOXYGEN) || defined(CTYPESGEN)
Hence my puzzlement.
> At runtime, it works because from a functionality standpoint, nothing
> changed. For the OSX stuff, the only thing that changed really was
> that we now have NULL checks in cmdline.c, which will remove since
> we've made the promise to return non-NULL on OSX systems. Does this
> help explain?
>
Agreed on the runtime. At compile time I would have expected a warning,
at least. But I'm not too worried about it; just fix it in the next
iteration.
> > I don't understand the question. If we make a promise in the API, then by
> > definition callers don't have to check for it (or, callers that *do* check
> > for it (for paranoia or debugging reasons) should use SVN_ERR_ASSERT or
> > SVN_ERR_MALFUNCTION.) Does that answer your question?
>
> Yeah. I think I was being a little too paranoid. I was just saying
> that if a NULL can be returned, should we check for it and the answer
> is no if we know 100% that it can't be NULL and in our case, we can.
> NULL only is returned if you call a function for another platform and
> that can't happen in cmdline.c since we conditionally include calls to
> those functions.
>
Yes.
Daniel
> --
> Take care,
>
> Jeremy Whitlock
> http://www.thoughtspark.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-11 18:14:21 CEST