Commit d1b6ea8a by David Michael Barr

delta-apply: add git__delta_read_header

parent f1e5c506
...@@ -36,6 +36,19 @@ static int hdr_sz( ...@@ -36,6 +36,19 @@ static int hdr_sz(
return 0; return 0;
} }
int git__delta_read_header(
const unsigned char *delta,
size_t delta_len,
size_t *base_sz,
size_t *res_sz)
{
const unsigned char *delta_end = delta + delta_len;
if ((hdr_sz(base_sz, &delta, delta_end) < 0) ||
(hdr_sz(res_sz, &delta, delta_end) < 0))
return -1;
return 0;
}
int git__delta_apply( int git__delta_apply(
git_rawobj *out, git_rawobj *out,
const unsigned char *base, const unsigned char *base,
......
...@@ -30,4 +30,21 @@ extern int git__delta_apply( ...@@ -30,4 +30,21 @@ extern int git__delta_apply(
const unsigned char *delta, const unsigned char *delta,
size_t delta_len); size_t delta_len);
/**
* Read the header of a git binary delta.
*
* @param delta the delta to execute copy/insert instructions from.
* @param delta_len total number of bytes in the delta.
* @param base_sz pointer to store the base size field.
* @param res_sz pointer to store the result size field.
* @return
* - 0 on a successful decoding the header.
* - GIT_ERROR if the delta is corrupt.
*/
extern int git__delta_read_header(
const unsigned char *delta,
size_t delta_len,
size_t *base_sz,
size_t *res_sz);
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment