diff options
Diffstat (limited to 'xdelta3/xdelta3-blkcache.h')
-rw-r--r-- | xdelta3/xdelta3-blkcache.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/xdelta3/xdelta3-blkcache.h b/xdelta3/xdelta3-blkcache.h index dcd4c06..36f8216 100644 --- a/xdelta3/xdelta3-blkcache.h +++ b/xdelta3/xdelta3-blkcache.h | |||
@@ -21,6 +21,8 @@ | |||
21 | /* TODO: This code is heavily revised from 3.0z but still needs major | 21 | /* TODO: This code is heavily revised from 3.0z but still needs major |
22 | * refactoring. */ | 22 | * refactoring. */ |
23 | 23 | ||
24 | #include "xdelta3-internal.h" | ||
25 | |||
24 | typedef struct _main_blklru main_blklru; | 26 | typedef struct _main_blklru main_blklru; |
25 | typedef struct _main_blklru_list main_blklru_list; | 27 | typedef struct _main_blklru_list main_blklru_list; |
26 | 28 | ||
@@ -38,8 +40,7 @@ struct _main_blklru | |||
38 | main_blklru_list link; | 40 | main_blklru_list link; |
39 | }; | 41 | }; |
40 | 42 | ||
41 | /* TODO: The value for MAX_LRU_SIZE has what significance? */ | 43 | #define MAX_LRU_SIZE 32U |
42 | #define MAX_LRU_SIZE 32U /* must be a power of 2 */ | ||
43 | #define XD3_MINSRCWINSZ (XD3_ALLOCSIZE * MAX_LRU_SIZE) | 44 | #define XD3_MINSRCWINSZ (XD3_ALLOCSIZE * MAX_LRU_SIZE) |
44 | 45 | ||
45 | XD3_MAKELIST(main_blklru_list,main_blklru,link); | 46 | XD3_MAKELIST(main_blklru_list,main_blklru,link); |
@@ -67,7 +68,7 @@ static void main_lru_cleanup (void) | |||
67 | { | 68 | { |
68 | if (lru != NULL) | 69 | if (lru != NULL) |
69 | { | 70 | { |
70 | main_free (lru[0].blk); | 71 | main_buffree (lru[0].blk); |
71 | } | 72 | } |
72 | 73 | ||
73 | main_free (lru); | 74 | main_free (lru); |
@@ -145,7 +146,7 @@ main_set_source (xd3_stream *stream, xd3_cmd cmd, | |||
145 | memset (lru, 0, sizeof(lru[0]) * MAX_LRU_SIZE); | 146 | memset (lru, 0, sizeof(lru[0]) * MAX_LRU_SIZE); |
146 | 147 | ||
147 | /* Allocate the entire buffer. */ | 148 | /* Allocate the entire buffer. */ |
148 | if ((lru[0].blk = (uint8_t*) main_malloc (option_srcwinsz)) == NULL) | 149 | if ((lru[0].blk = (uint8_t*) main_bufalloc (option_srcwinsz)) == NULL) |
149 | { | 150 | { |
150 | ret = ENOMEM; | 151 | ret = ENOMEM; |
151 | return ret; | 152 | return ret; |
@@ -189,11 +190,11 @@ main_set_source (xd3_stream *stream, xd3_cmd cmd, | |||
189 | if (!sfile->size_known || source_size > option_srcwinsz) | 190 | if (!sfile->size_known || source_size > option_srcwinsz) |
190 | { | 191 | { |
191 | /* Modify block 0, change blocksize. */ | 192 | /* Modify block 0, change blocksize. */ |
192 | lru_size = MAX_LRU_SIZE; | 193 | blksize = option_srcwinsz / MAX_LRU_SIZE; |
193 | blksize = option_srcwinsz / MAX_LRU_SIZE; /* Power of 2 */ | ||
194 | source->blksize = blksize; | 194 | source->blksize = blksize; |
195 | source->onblk = blksize; /* xd3 sets onblk */ | 195 | source->onblk = blksize; /* xd3 sets onblk */ |
196 | lru[0].size = blksize; | 196 | lru[0].size = blksize; |
197 | lru_size = MAX_LRU_SIZE; | ||
197 | 198 | ||
198 | /* Setup rest of blocks. */ | 199 | /* Setup rest of blocks. */ |
199 | for (i = 1; i < lru_size; i += 1) | 200 | for (i = 1; i < lru_size; i += 1) |