[libvirt] [PATCH 02/15] maint: avoid 'const fooPtr' in hashes

Daniel P. Berrange berrange at redhat.com
Mon Oct 14 15:17:51 UTC 2013


On Tue, Oct 08, 2013 at 11:24:59AM -0600, Eric Blake wrote:
> 'const fooPtr' is the same as 'foo * const' (the pointer won't
> change, but it's contents can).  But in general, if an interface
> is trying to be const-correct, it should be using 'const foo *'
> (the pointer is to data that can't be changed).
> 
> Fix up virhash to provide a const-correct interface: all actions
> that don't modify the table take a const table.  Note that in
> one case (virHashSearch), we actually strip const away - we aren't
> modifying the contents of the table, so much as associated data
> for ensuring that the code uses the table correctly (if this were
> C++, it would be a case for the 'mutable' keyword).
> 
> * src/util/virhash.h (virHashKeyComparator, virHashEqual): Use
> intended type.
> (virHashSize, virHashTableSize, virHashLookup, virHashSearch):
> Make const-correct.
> * src/util/virhash.c (virHashEqualData, virHashEqual)
> (virHashLookup, virHashSize, virHashTableSize, virHashSearch)
> (virHashComputeKey): Fix fallout.
> * src/conf/nwfilter_params.c
> (virNWFilterFormatParameterNameSorter): Likewise.
> * src/nwfilter/nwfilter_ebiptables_driver.c
> (ebiptablesFilterOrderSort): Likewise.
> * tests/virhashtest.c (testHashGetItemsCompKey)
> (testHashGetItemsCompValue): Likewise.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
>  src/conf/nwfilter_params.c                |  8 ++++----
>  src/nwfilter/nwfilter_ebiptables_driver.c |  6 +++---
>  src/util/virhash.c                        | 21 ++++++++++++---------
>  src/util/virhash.h                        | 19 ++++++++++---------
>  tests/virhashtest.c                       |  8 ++++----
>  5 files changed, 33 insertions(+), 29 deletions(-)

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list