Jeff King <p...@peff.net> writes:

> On Wed, Oct 23, 2013 at 07:55:06PM +0700, Nguyen Thai Ngoc Duy wrote:
> ...
>> -    memcpy(path, state->base_dir, len);
>> -    strcpy(path + len, ce->name);
>> -    len += ce_namelen(ce);
>> +    strbuf_reset(&path_buf);
>> +    strbuf_addf(&path_buf, "%.*s%s", state->base_dir_len, state->base_dir, 
>> ce->name);
>> +    path = path_buf.buf;
>> +    len = path_buf.len;
>
> This is not something you introduced, but while we are here, you may
> want to use ce->namelen, which would be a little faster than treating it
> as a string (especially for strbuf, as it can then know up front how big
> the size is).

Hmmmm, do you mean something like this on top?

diff --git a/entry.c b/entry.c
index d955af5..0d48292 100644
--- a/entry.c
+++ b/entry.c
@@ -246,7 +246,9 @@ int checkout_entry(struct cache_entry *ce,
                return write_entry(ce, topath, state, 1);
 
        strbuf_reset(&path_buf);
-       strbuf_addf(&path_buf, "%.*s%s", state->base_dir_len, state->base_dir, 
ce->name);
+       strbuf_addf(&path_buf, "%.*s%.*s",
+                   state->base_dir_len, state->base_dir,
+                   ce_namelen(ce), ce->name);
        path = path_buf.buf;
        len = path_buf.len;
 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to