Greg Hudson wrote:
>On Wed, 2004-05-12 at 18:57, brane@tigris.org wrote:
>  
>
>>+  svn_error_t *err = SVN_NO_ERROR;
>>+  int i;
>>+
>>+  for (i = 0; checklist[i].label != NULL; ++i)
>>+    {
>>+      const svn_version_t *lib_version = checklist[i].version_query();
>>+      if (!svn_ver_compatible (my_version, lib_version))
>>+        err = mismatch_error (checklist[i].label, lib_version, err);
>>+    }
>>+
>>+  return err;
>>    
>>
>
>This could leak errors.  Hardly a big deal in practice, but adding "&&
>!err" to the loop condition, or a break to the body of the if statement,
>would make the code more correct.
>  
>
No, it would make the code wrong IMHO because it would stop at the first 
incompatibility instead of listing them all.
How about this: I remove the 'child' parameter from 
svn_ver_error_generator_t and set it explicitly in this loop, so that we 
don't rely on the mismatch_error implementation being correct.
-- Brane
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri May 14 03:03:29 2004