summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-05-12 13:06:33 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-05-13 09:34:20 +0200
commit77b339f7b6c7e167ecaf9374eb6876b498d8cb83 (patch)
tree2067451017501f2d2411442370a71997c715e52b /include
parentf85a9c2767b43f35904bf39858488a4b7bc304e8 (diff)
downloadlibgit2-77b339f7b6c7e167ecaf9374eb6876b498d8cb83.tar.gz
odb: make the writestream's size a git_off_tcmn/stream-size
Restricting files to size_t is a silly limitation. The loose backend writes to a file directly, so there is no issue in using 63 bits for the size. We still assume that the header is going to fit in 64 bytes, which does mean quite a bit smaller files due to the run-length encoding, but it's still a much larger size than you would want Git to handle.
Diffstat (limited to 'include')
-rw-r--r--include/git2/odb.h2
-rw-r--r--include/git2/odb_backend.h4
-rw-r--r--include/git2/sys/odb_backend.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/include/git2/odb.h b/include/git2/odb.h
index 114f6b317..4f1e18bc1 100644
--- a/include/git2/odb.h
+++ b/include/git2/odb.h
@@ -247,7 +247,7 @@ GIT_EXTERN(int) git_odb_write(git_oid *out, git_odb *odb, const void *data, size
* @param type type of the object that will be written
* @return 0 if the stream was created; error code otherwise
*/
-GIT_EXTERN(int) git_odb_open_wstream(git_odb_stream **out, git_odb *db, size_t size, git_otype type);
+GIT_EXTERN(int) git_odb_open_wstream(git_odb_stream **out, git_odb *db, git_off_t size, git_otype type);
/**
* Write to an odb stream
diff --git a/include/git2/odb_backend.h b/include/git2/odb_backend.h
index 4d772cab9..b17cfd8ba 100644
--- a/include/git2/odb_backend.h
+++ b/include/git2/odb_backend.h
@@ -86,8 +86,8 @@ struct git_odb_stream {
unsigned int mode;
void *hash_ctx;
- size_t declared_size;
- size_t received_bytes;
+ git_off_t declared_size;
+ git_off_t received_bytes;
/**
* Write at most `len` bytes into `buffer` and advance the stream.
diff --git a/include/git2/sys/odb_backend.h b/include/git2/sys/odb_backend.h
index 1fc3c3159..0a51c6dba 100644
--- a/include/git2/sys/odb_backend.h
+++ b/include/git2/sys/odb_backend.h
@@ -53,7 +53,7 @@ struct git_odb_backend {
git_odb_backend *, const git_oid *, const void *, size_t, git_otype);
int (* writestream)(
- git_odb_stream **, git_odb_backend *, size_t, git_otype);
+ git_odb_stream **, git_odb_backend *, git_off_t, git_otype);
int (* readstream)(
git_odb_stream **, git_odb_backend *, const git_oid *);