[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