diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2022-01-15 13:50:26 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2022-01-15 15:58:07 +0100 |
commit | 29bc12777ceffd00ed0ae103b8f2affa26897b4e (patch) | |
tree | 137886309baa148e3e84646f89600c00dd37d0fe /bridges | |
parent | fe37aa64ff79abcd3aeedeb03d8d74798225a367 (diff) |
Let loplugin:nullptr look into template instantiations
It missed some occurrences of 0 when only looking into uninstantiated template
code, as Clang doesn't model them with an ImplicitCastExpr, even if the target
is known to be a (dependent) pointer type.
Looking into all template instantiations of course carries the risk that a given
use of 0 is meant to be interpreted as a pointer in some and as an integer in
other instantiations. But the only case where that happened in the current code
base is RegistryValueList::getElement (include/registry/registry.hxx), where {}
is arguably a better choice anyway. (And which would presumably also hold for
any future such cases.)
Change-Id: I708bcfc8bedc0a49c9282d7814eb325afa29905c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128462
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/source/cpp_uno/shared/vtables.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bridges/source/cpp_uno/shared/vtables.cxx b/bridges/source/cpp_uno/shared/vtables.cxx index beda5ad29d44..9a7d7b376882 100644 --- a/bridges/source/cpp_uno/shared/vtables.cxx +++ b/bridges/source/cpp_uno/shared/vtables.cxx @@ -82,7 +82,7 @@ template< typename T > bridges::cpp_uno::shared::VtableSlot doGetVtableSlot( bridges::cpp_uno::shared::VtableSlot slot; slot.offset = 0; T * member = const_cast< T * >(ifcMember); - while (member->pBaseRef != 0) { + while (member->pBaseRef != nullptr) { assert(member->nIndex < member->pInterface->nBaseTypes); for (sal_Int32 i = 0; i < member->nIndex; ++i) { slot.offset += getVtableCount(member->pInterface->ppBaseTypes[i]); |