[pacman-dev] [PATCH 1/3] alpm_list: use malloc instead of calloc

Dan McGee dan at archlinux.org
Tue Sep 27 18:57:10 EDT 2011


In every case we were calling calloc, the struct we allocated (or the
memory to be used) is fully specified later in the method.

For alpm_list_t allocations, we always set all of data, next, and prev.

For list copying and transforming to an array, we always copy the entire
data element, so no need to zero it first.

Signed-off-by: Dan McGee <dan at archlinux.org>
---
 lib/libalpm/alpm_list.c |    8 ++++----
 lib/libalpm/pkghash.c   |    8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c
index 274d3af..15286aa 100644
--- a/lib/libalpm/alpm_list.c
+++ b/lib/libalpm/alpm_list.c
@@ -89,7 +89,7 @@ alpm_list_t SYMEXPORT *alpm_list_add(alpm_list_t *list, void *data)
 {
 	alpm_list_t *ptr, *lp;
 
-	ptr = calloc(1, sizeof(alpm_list_t));
+	ptr = malloc(sizeof(alpm_list_t));
 	if(ptr == NULL) {
 		return list;
 	}
@@ -127,7 +127,7 @@ alpm_list_t SYMEXPORT *alpm_list_add_sorted(alpm_list_t *list, void *data, alpm_
 	} else {
 		alpm_list_t *add = NULL, *prev = NULL, *next = list;
 
-		add = calloc(1, sizeof(alpm_list_t));
+		add = malloc(sizeof(alpm_list_t));
 		if(add == NULL) {
 			return list;
 		}
@@ -470,7 +470,7 @@ alpm_list_t SYMEXPORT *alpm_list_copy_data(const alpm_list_t *list,
 	const alpm_list_t *lp = list;
 	alpm_list_t *newlist = NULL;
 	while(lp) {
-		void *newdata = calloc(1, size);
+		void *newdata = malloc(size);
 		if(newdata) {
 			memcpy(newdata, lp->data, size);
 			newlist = alpm_list_add(newlist, newdata);
@@ -775,7 +775,7 @@ void SYMEXPORT *alpm_list_to_array(const alpm_list_t *list, size_t n,
 		return NULL;
 	}
 
-	array = calloc(n, size);
+	array = malloc(n * size);
 	if(array == NULL) {
 		return NULL;
 	}
diff --git a/lib/libalpm/pkghash.c b/lib/libalpm/pkghash.c
index f6207ad..963ba25 100644
--- a/lib/libalpm/pkghash.c
+++ b/lib/libalpm/pkghash.c
@@ -159,19 +159,19 @@ static alpm_pkghash_t *pkghash_add_pkg(alpm_pkghash_t *hash, alpm_pkg_t *pkg, in
 
 	position = get_hash_position(pkg->name_hash, hash);
 
-	ptr = calloc(1, sizeof(alpm_list_t));
+	ptr = malloc(sizeof(alpm_list_t));
 	if(ptr == NULL) {
 		return hash;
 	}
 
 	ptr->data = pkg;
-	ptr->next = NULL;
 	ptr->prev = ptr;
+	ptr->next = NULL;
 
 	hash->hash_table[position] = ptr;
-	if(!sorted){
+	if(!sorted) {
 		hash->list = alpm_list_join(hash->list, ptr);
-	}else{
+	} else {
 		hash->list = alpm_list_mmerge(hash->list, ptr, _alpm_pkg_cmp);
 	}
 
-- 
1.7.6.4



More information about the pacman-dev mailing list