Commit 55c84333 by Carlos Martín Nieto

mwindow: include both the offset and the extra in the same call

This makes it a bit easier to read while letting the caller specify
how big the hash size is for this particular call.
parent 13502d9e
......@@ -186,13 +186,16 @@ int git_mwindow_free_all(git_mwindow_file *mwf)
}
/*
* Check if a window 'win' contains the address 'offset'
* Check if a window 'win' contains both the address 'offset' and 'extra'.
*
* 'extra' is the size of the hash we're using as we always want to make sure
* that it's contained.
*/
int git_mwindow_contains(git_mwindow *win, off64_t offset)
int git_mwindow_contains(git_mwindow *win, off64_t offset, off64_t extra)
{
off64_t win_off = win->offset;
return win_off <= offset
&& offset <= (off64_t)(win_off + win->window_map.len);
&& (offset + extra) <= (off64_t)(win_off + win->window_map.len);
}
#define GIT_MWINDOW__LRU -1
......@@ -406,14 +409,13 @@ unsigned char *git_mwindow_open(
return NULL;
}
if (!w || !(git_mwindow_contains(w, offset) && git_mwindow_contains(w, offset + extra))) {
if (!w || !(git_mwindow_contains(w, offset, extra))) {
if (w) {
w->inuse_cnt--;
}
for (w = mwf->windows; w; w = w->next) {
if (git_mwindow_contains(w, offset) &&
git_mwindow_contains(w, offset + extra))
if (git_mwindow_contains(w, offset, extra))
break;
}
......
......@@ -38,7 +38,7 @@ typedef struct git_mwindow_ctl {
git_vector windowfiles;
} git_mwindow_ctl;
int git_mwindow_contains(git_mwindow *win, off64_t offset);
int git_mwindow_contains(git_mwindow *win, off64_t offset, off64_t extra);
int git_mwindow_free_all(git_mwindow_file *mwf); /* locks */
unsigned char *git_mwindow_open(git_mwindow_file *mwf, git_mwindow **cursor, off64_t offset, size_t extra, unsigned int *left);
int git_mwindow_file_register(git_mwindow_file *mwf);
......
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