This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix warnings in manual/examples/search.c


On 05/16/2012 07:37 PM, Paul Eggert wrote:
> On 05/16/2012 04:24 AM, Andreas Jaeger wrote:
>> -critter_cmp (const struct critter *c1, const struct critter *c2)
>> +critter_cmp (const void *v1, const void *v2)
>>   {
>> +  struct critter *c1 = (struct critter *)v1;
>> +  struct critter *c2 = (struct critter *)v2;
>> +
>>     return strcmp (c1->name, c2->name);
> 
> Please redo it so that no casts are needed, as pointer casts
> are big hammers that shouldn't be used unless necessary.
> Like this:
> 
>   int
>   critter_cmp (const void *v1, const void *v2)
>   {
>     const struct critter *c1 = v1;
>     const struct critter *c2 = v2;
>     return strcmp (c1->name, c2->name);
>   }
> 
> Similarly for the other two examples.

Ok, here's what I'll commit later,

Andreas

diff --git a/manual/examples/search.c b/manual/examples/search.c
index e376567..7fe05ea 100644
--- a/manual/examples/search.c
+++ b/manual/examples/search.c
@@ -53,8 +53,11 @@ int count = sizeof (muppets) / sizeof (struct critter);
 /* This is the comparison function used for sorting and searching. */
 
 int
-critter_cmp (const struct critter *c1, const struct critter *c2)
+critter_cmp (const void *v1, const void *v2)
 {
+  const struct critter *c1 = v1;
+  const struct critter *c2 = v2;
+
   return strcmp (c1->name, c2->name);
 }
 
diff --git a/manual/string.texi b/manual/string.texi
index 5051f54..831873b 100644
--- a/manual/string.texi
+++ b/manual/string.texi
@@ -1370,8 +1370,11 @@ efficiently using @code{strxfrm}.)
 /* @r{This is the comparison function used with @code{qsort}.} */
 
 int
-compare_elements (char **p1, char **p2)
+compare_elements (const void *v1, const void *v2)
 @{
+  char * const *p1 = v1;
+  char * const *p1 = v2;
+
   return strcoll (*p1, *p2);
 @}
 
@@ -1462,8 +1465,11 @@ struct sorter @{ char *input; char *transformed; @};
    @r{to sort an array of @code{struct sorter}.} */
 
 int
-compare_elements (struct sorter *p1, struct sorter *p2)
+compare_elements (const void *v1, const void *v2)
 @{
+  const struct sorter *p1 = v1;
+  const struct sorter *p2 = v2;
+
   return strcmp (p1->transformed, p2->transformed);
 @}
 

-- 
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 NÃrnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix ImendÃrffer,HRB16746 (AG NÃrnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]