[lvm-devel] const correctness, first cut

Jim Meyering jim at meyering.net
Mon Aug 6 21:09:10 UTC 2007


Petr Rockai <prockai at redhat.com> wrote:
>>>>  		process_each_lv_in_vg(cmd, vg, NULL, NULL, NULL,
>>>> -				      &lvdisplay_full);
>>>> +				      (process_single_lv_fn_t)lvdisplay_full);
>>>
>>> Is there a nice way to avoid those casts?
>>
>> This is where you wish for features of other languages.
>>
>> I wrote an earlier iteration that instead added a new function,
>> process_each_lv_in_vg_ro (read-only), with the appropriate
>> signature for the fn-parameter, but IMHO, that was worse,
>> and besides, wasn't worth it, for just one use.
>
> You could still add a new function that just confines the ugly cast?
> (Assuming that's not what you have done). Maybe _const instead of _ro,
> too.

That's what I did.
But *it* then has to call the original, process_each_lv_in_vg_ro,
and in so doing, it needs its own casts, in addition to the
added layer of indirection.

Adding one little cast (per call) is not pretty, but less ugly
than the alternative, since there's only one use of each.




More information about the lvm-devel mailing list