summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7966fd9)
Commit
fb3655d (use struct strbuf instead of static buffers, 2013-04-06)
broke the logic in cache.c::cache_ls by failing to set slot->cache_name
before calling open_slot.
While fixing this, also free the strbufs added by that commit once we're
done with them.
Signed-off-by: John Keeping <john@keeping.me.uk>
struct strbuf filename = STRBUF_INIT;
struct strbuf lockname = STRBUF_INIT;
struct cache_slot slot;
struct strbuf filename = STRBUF_INIT;
struct strbuf lockname = STRBUF_INIT;
struct cache_slot slot;
/* If the cache is disabled, just generate the content */
if (size <= 0) {
/* If the cache is disabled, just generate the content */
if (size <= 0) {
slot.fn = fn;
slot.cbdata = cbdata;
slot.ttl = ttl;
slot.fn = fn;
slot.cbdata = cbdata;
slot.ttl = ttl;
- slot.cache_name = strbuf_detach(&filename, NULL);
- slot.lock_name = strbuf_detach(&lockname, NULL);
+ slot.cache_name = filename.buf;
+ slot.lock_name = lockname.buf;
slot.key = key;
slot.keylen = strlen(key);
slot.key = key;
slot.keylen = strlen(key);
- return process_slot(&slot);
+ result = process_slot(&slot);
+
+ strbuf_release(&filename);
+ strbuf_release(&lockname);
+ return result;
}
/* Return a strftime formatted date/time
}
/* Return a strftime formatted date/time
continue;
strbuf_setlen(&fullname, prefixlen);
strbuf_addstr(&fullname, ent->d_name);
continue;
strbuf_setlen(&fullname, prefixlen);
strbuf_addstr(&fullname, ent->d_name);
+ slot.cache_name = fullname.buf;
if ((err = open_slot(&slot)) != 0) {
cache_log("[cgit] unable to open path %s: %s (%d)\n",
fullname.buf, strerror(err), err);
if ((err = open_slot(&slot)) != 0) {
cache_log("[cgit] unable to open path %s: %s (%d)\n",
fullname.buf, strerror(err), err);
slot.buf);
close_slot(&slot);
}
slot.buf);
close_slot(&slot);
}
- slot.cache_name = strbuf_detach(&fullname, NULL);
+ strbuf_release(&fullname);