On 10/24/13 11:44 AM, Maximo, Andre (GE Global Research) wrote:
> void CVCS::svnURLPath(CString& urlPath, const CString &fullPath)
> 
> {
> 
>   apr_pool_t *local_pool = svn_pool_create(m_svn_pool);
> 
>   const char *url = NULL;
> 
>   svn_error_t *err = svn_client_url_from_path2(&url, fullPath, m_svn_ctx,
> m_svn_pool, local_pool);
> 
>   if (url != NULL)
> 
>     urlPath = CString(url);
> 
>   svn_pool_destroy(local_pool);
> 
> }

Looking at this code more closely I see that you're passing
svn_client_url_from_path2() a pointer to a CString class.  I'm guessing you're
using MFC based on that class name.  So I suspect what you really needed on the
svn_client_url_from_path2() call is:

svn_error_t *err = svn_client_url_from_path2(&url, fullPath->GetBuffer(),
m_svn_ctx, m_svn_pool, local_pool);

Bert's and my earlier points about the lack of checking for errors still
stands.  In this case our particular implementation is good enough that it
wouldn't break your code since url will still be NULL.  But we don't promise 
that.

I think the fact that it's succeeding for you when passing a valid path is a
fluke and failing when passing a non-existent path is just a fluke.

Reply via email to