[pacman-dev] [PATCH v5 6/6] be_local: Use alpm_greedy_grow

Florian Pritz bluewind at xinu.at
Sun Feb 9 14:24:41 EST 2014


Signed-off-by: Florian Pritz <bluewind at xinu.at>
---
 lib/libalpm/be_local.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c
index 0b5b266..d2b0fe3 100644
--- a/lib/libalpm/be_local.c
+++ b/lib/libalpm/be_local.c
@@ -736,22 +736,8 @@ static int local_db_read(alpm_pkg_t *info, alpm_dbinfrq_t inforeq)
 
 				while(fgets(line, sizeof(line), fp) &&
 						(len = _alpm_strip_newline(line, 0))) {
-					if(files_count >= files_size) {
-						size_t old_size = files_size;
-						if(files_size == 0) {
-							files_size = 8;
-						} else {
-							files_size *= 2;
-						}
-						files = realloc(files, sizeof(alpm_file_t) * files_size);
-						if(!files) {
-							_alpm_alloc_fail(sizeof(alpm_file_t) * files_size);
-							goto error;
-						}
-						/* ensure all new memory is zeroed out, in both the initial
-						 * allocation and later reallocs */
-						memset(files + old_size, 0,
-								sizeof(alpm_file_t) * (files_size - old_size));
+					if(!_alpm_greedy_grow((void **)&files, &files_size, (files_count + 1) * sizeof(alpm_file_t))) {
+						goto error;
 					}
 					/* since we know the length of the file string already,
 					 * we can do malloc + memcpy rather than strdup */
-- 
1.8.5.3


More information about the pacman-dev mailing list