[parted-devel] [PATCH] make ped_realloc() prototype match standard realloc()

Frodo Baggins frodo.drogo at gmail.com
Tue Oct 30 19:29:46 UTC 2007


Hi all,
This point was raised in an earlier discussion on this list. I think
the modifications to ext2_resize.c can benefit from a review.

Regards,
Frodo B

diff --git a/include/parted/parted.h b/include/parted/parted.h
index 1302d8f..13a7bb4 100644
--- a/include/parted/parted.h
+++ b/include/parted/parted.h
@@ -53,7 +53,7 @@ extern const char* ped_get_version ();

 extern void* ped_malloc (size_t size);
 extern void* ped_calloc (size_t size);
-extern int ped_realloc (void** ptr, size_t size);
+extern void* ped_realloc (void* ptr, size_t size);
 extern void ped_free (void* ptr);

 #ifdef __cplusplus
diff --git a/libparted/fs/ext2/ext2_resize.c b/libparted/fs/ext2/ext2_resize.c
index 580c466..b637c23 100644
--- a/libparted/fs/ext2/ext2_resize.c
+++ b/libparted/fs/ext2/ext2_resize.c
@@ -35,7 +35,7 @@ static int ext2_add_group(struct ext2_fs *fs, blk_t groupsize)
 	if (fs->opt_verbose)
                 fputs ("ext2_add_group\n", stderr);

-	if (!ped_realloc ((void*) &fs->gd,
+	if (NULL == ped_realloc ((void*) fs->gd,
 			  (fs->numgroups+1) * sizeof(struct ext2_group_desc)
 			      + fs->blocksize))
 		return 0;
@@ -315,7 +315,7 @@ static int ext2_del_group(struct ext2_fs *fs)
 	if (fs->opt_safe)
 		ext2_sync(fs);

-	ped_realloc ((void*) &fs->gd,
+	ped_realloc ((void*) fs->gd,
 		     fs->numgroups * sizeof(struct ext2_group_desc)
 			      + fs->blocksize);

diff --git a/libparted/libparted.c b/libparted/libparted.c
index a8c7f0a..978f219 100644
--- a/libparted/libparted.c
+++ b/libparted/libparted.c
@@ -308,19 +308,18 @@ ped_malloc (size_t size)
 	return mem;
 }

-int
-ped_realloc (void** old, size_t size)
+void*
+ped_realloc (void* old, size_t size)
 {
 	void*		mem;

-	mem = (void*) realloc (*old, size);
+	mem = realloc (old, size);
 	if (!mem) {
 		ped_exception_throw (PED_EXCEPTION_FATAL, PED_EXCEPTION_CANCEL,
 				     _("Out of memory."));
-		return 0;
+		return mem;
 	}
-	*old = mem;
-	return 1;
+	return mem;
 }


diff --git a/parted/parted.c b/parted/parted.c
index 6a606ae..65ccef4 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -1171,7 +1171,7 @@ partition_print_flags (PedPartition* part)
                                 first_flag = 0;
                         else {
                                 _res = res;
-                                ped_realloc (&_res, strlen (res)
+                                ped_realloc (_res, strlen (res)
                                                            + 1 + 2);
                                 res = _res;
                                 strncat (res, ", ", 2);
@@ -1179,7 +1179,7 @@ partition_print_flags (PedPartition* part)

                         name = _(ped_partition_flag_get_name (flag));
                         _res = res;
-                        ped_realloc (&_res, strlen (res) + 1
+                        ped_realloc (_res, strlen (res) + 1
                                                    + strlen (name));
                         res = _res;
                         strncat (res, name, 21);



More information about the parted-devel mailing list