mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 15:33:51 +00:00
odb: Pass compression settings to filebuf
This commit is contained in:
parent
8af4d074cc
commit
c103d7b4b7
@ -129,7 +129,7 @@ static int write_deflate(git_filebuf *file, void *source, size_t len)
|
|||||||
|
|
||||||
int git_filebuf_open(git_filebuf *file, const char *path, int flags)
|
int git_filebuf_open(git_filebuf *file, const char *path, int flags)
|
||||||
{
|
{
|
||||||
int error;
|
int error, compression;
|
||||||
size_t path_len;
|
size_t path_len;
|
||||||
|
|
||||||
assert(file && path);
|
assert(file && path);
|
||||||
@ -155,11 +155,12 @@ int git_filebuf_open(git_filebuf *file, const char *path, int flags)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we are deflating on-write, */
|
compression = flags >> GIT_FILEBUF_DEFLATE_SHIFT;
|
||||||
if (flags & GIT_FILEBUF_DEFLATE_CONTENTS) {
|
|
||||||
|
|
||||||
|
/* If we are deflating on-write, */
|
||||||
|
if (compression != 0) {
|
||||||
/* Initialize the ZLib stream */
|
/* Initialize the ZLib stream */
|
||||||
if (deflateInit(&file->zs, Z_BEST_SPEED) != Z_OK) {
|
if (deflateInit(&file->zs, compression) != Z_OK) {
|
||||||
error = git__throw(GIT_EZLIB, "Failed to initialize zlib");
|
error = git__throw(GIT_EZLIB, "Failed to initialize zlib");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define GIT_FILEBUF_APPEND (1 << 2)
|
#define GIT_FILEBUF_APPEND (1 << 2)
|
||||||
#define GIT_FILEBUF_FORCE (1 << 3)
|
#define GIT_FILEBUF_FORCE (1 << 3)
|
||||||
#define GIT_FILEBUF_TEMPORARY (1 << 4)
|
#define GIT_FILEBUF_TEMPORARY (1 << 4)
|
||||||
#define GIT_FILEBUF_DEFLATE_CONTENTS (1 << 5)
|
#define GIT_FILEBUF_DEFLATE_SHIFT (5)
|
||||||
|
|
||||||
#define GIT_FILELOCK_EXTENSION ".lock\0"
|
#define GIT_FILELOCK_EXTENSION ".lock\0"
|
||||||
#define GIT_FILELOCK_EXTLENGTH 6
|
#define GIT_FILELOCK_EXTLENGTH 6
|
||||||
|
@ -735,8 +735,8 @@ static int loose_backend__stream(git_odb_stream **stream_out, git_odb_backend *_
|
|||||||
|
|
||||||
error = git_filebuf_open(&stream->fbuf, tmp_path,
|
error = git_filebuf_open(&stream->fbuf, tmp_path,
|
||||||
GIT_FILEBUF_HASH_CONTENTS |
|
GIT_FILEBUF_HASH_CONTENTS |
|
||||||
GIT_FILEBUF_DEFLATE_CONTENTS |
|
GIT_FILEBUF_TEMPORARY |
|
||||||
GIT_FILEBUF_TEMPORARY);
|
(backend->object_zlib_level << GIT_FILEBUF_DEFLATE_SHIFT));
|
||||||
|
|
||||||
if (error < GIT_SUCCESS) {
|
if (error < GIT_SUCCESS) {
|
||||||
free(stream);
|
free(stream);
|
||||||
@ -774,8 +774,8 @@ static int loose_backend__write(git_oid *oid, git_odb_backend *_backend, const v
|
|||||||
|
|
||||||
error = git_filebuf_open(&fbuf, final_path,
|
error = git_filebuf_open(&fbuf, final_path,
|
||||||
GIT_FILEBUF_HASH_CONTENTS |
|
GIT_FILEBUF_HASH_CONTENTS |
|
||||||
GIT_FILEBUF_DEFLATE_CONTENTS |
|
GIT_FILEBUF_TEMPORARY |
|
||||||
GIT_FILEBUF_TEMPORARY);
|
(backend->object_zlib_level << GIT_FILEBUF_DEFLATE_SHIFT));
|
||||||
|
|
||||||
if (error < GIT_SUCCESS)
|
if (error < GIT_SUCCESS)
|
||||||
return error;
|
return error;
|
||||||
|
Loading…
Reference in New Issue
Block a user