Fix a usage error in a call to the object_file_name() function
commitac04bdf6e0ee6bb4286343bc70d745146eb1e506
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>
Thu, 4 Jun 2009 15:44:54 +0000 (4 16:44 +0100)
committerAndreas Ericsson <ae@op5.se>
Fri, 5 Jun 2009 08:21:11 +0000 (5 10:21 +0200)
tree523f154de39d4da383a9e790d513d111a68b7c51
parentfd0ec0333948dfe23265ac46be0205a436a8c3a5
Fix a usage error in a call to the object_file_name() function

In 82324ac, the new static function exists_loose() called
object_file_name() and, in order to detect an error return,
tested for a negative value. This usage is incorrect, as
the error return is indicated by a positive return value.
(A successful call is indicated by a zero return value)

The only error return from object_file_name() relates to
insufficient buffer space and the return value gives the
required minimum buffer size (which will always be >0).

If the caller requires a dynamically allocated buffer,
this allows something like the following call sequence:

    size_t len = object_file_name(NULL, 0, db->object_dir, id);
    char *buf = git__malloc(len);
    if (!buf)
        error(...);
    object_file_name(buf, len, db->object_dir,id);
    ...

No current callers take advantage of this capability.

Fix up the call site and change the return type of the
function, from int to size_t, which more accurately
reflects the implementation.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Andreas Ericsson <ae@op5.se>
src/odb.c