vendor/libgit2/src/pack-objects.c in rugged-0.24.0b12 vs vendor/libgit2/src/pack-objects.c in rugged-0.24.0b13
- old
+ new
@@ -89,21 +89,23 @@
}
static int packbuilder_config(git_packbuilder *pb)
{
git_config *config;
- int ret;
+ int ret = 0;
int64_t val;
if ((ret = git_repository_config_snapshot(&config, pb->repo)) < 0)
return ret;
#define config_get(KEY,DST,DFLT) do { \
ret = git_config_get_int64(&val, config, KEY); \
if (!ret) (DST) = val; \
- else if (ret == GIT_ENOTFOUND) (DST) = (DFLT); \
- else if (ret < 0) return -1; } while (0)
+ else if (ret == GIT_ENOTFOUND) { \
+ (DST) = (DFLT); \
+ ret = 0; \
+ } else if (ret < 0) goto out; } while (0)
config_get("pack.deltaCacheSize", pb->max_delta_cache_size,
GIT_PACK_DELTA_CACHE_SIZE);
config_get("pack.deltaCacheLimit", pb->cache_max_small_delta_size,
GIT_PACK_DELTA_CACHE_LIMIT);
@@ -111,13 +113,14 @@
GIT_PACK_BIG_FILE_THRESHOLD);
config_get("pack.windowMemory", pb->window_memory_limit, 0);
#undef config_get
+out:
git_config_free(config);
- return 0;
+ return ret;
}
int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
{
git_packbuilder *pb;
@@ -603,9 +606,10 @@
if (!po->filled)
add_family_to_write_order(wo, &wo_end, po);
}
if (wo_end != pb->nr_objects) {
+ git__free(wo);
giterr_set(GITERR_INVALID, "invalid write order");
return NULL;
}
return wo;