Am 24.05.2012 12:57, schrieb Ian Abbott:
> On 2012-05-24 11:28, Dan Carpenter wrote:
>> This function is more complicated than it needs to be because of the
>> consts. It's not worth saving them because we drop the consts anyway
>> when we return (void *)name_ptr.
>>
>> Signed-off-by: Dan Carpenter<dan.carpenter@xxxxxxxxxx>
>>
>> diff --git a/drivers/staging/comedi/drivers.c
>> b/drivers/staging/comedi/drivers.c
>> index 1c3d638..a8f576d 100644
>> --- a/drivers/staging/comedi/drivers.c
>> +++ b/drivers/staging/comedi/drivers.c
>> @@ -304,14 +304,13 @@ static int postconfig(struct comedi_device *dev)
>> * that register their supported board names */
>> static void *comedi_recognize(struct comedi_driver *driv, const char
>> *name)
>> {
>> - unsigned i;
>> - const char *const *name_ptr = driv->board_name;
>> + char **name_ptr = (char **)driv->board_name;
>> + int i;
>> +
>> for (i = 0; i< driv->num_names; i++) {
>> if (strcmp(*name_ptr, name) == 0)
>> - return (void *)name_ptr;
>> - name_ptr =
>> - (const char *const *)((const char *)name_ptr +
>> - driv->offset);
>> + return name_ptr;
>> + name_ptr = (char **)((void *)name_ptr + driv->offset);
>> }
>>
>> return NULL;
>
> You could simplify it further by keeping one of the consts:
>
> static void *comedi_recognize(struct comedi_driver *driv, const char *name)
> {
> unsigned i;
> const char **name_ptr = driv->board_name;
> for (i = 0; i < driv->num_names; i++) {
> if (strcmp(*name_ptr, name) == 0)
> return name_ptr;
> name_ptr = (void *)name_ptr + driv->offset;
> }
> return NULL;
> }
>
Hi all,
the patch is fine with me but i have a few basic questions:
Why the (void *) at all ? it returns a name what is a const char *.
A look at the structure also shows that this is a linked list, why
using offset instead of driv->next ?
re,
wh
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
[Video for Linux]
[Mplayer Users]
[Linux USB Devel]
[Linux Audio Users]
[Photos]
[Yosemite Photos]
[Free Singles Community]
[Linux Kernel]
[Linux SCSI]
[XFree86]
[Devices]
[Yosemite Backpacking]