diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index 06adf7cffd..986d22b5a6 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -783,6 +783,10 @@ struct IteratorOwner { *ptr = new const_iterator(iterator); } + static void assign(void **ptr, void * const * src) + { + *ptr = new const_iterator(*static_cast(*src)); + } static void advance(void **iterator, int step) { @@ -812,6 +816,10 @@ struct IteratorOwner { *ptr = const_cast(iterator); } + static void assign(void **ptr, void * const * src) + { + *ptr = static_cast(*src); + } static void advance(void **iterator, int step) { @@ -942,7 +950,7 @@ public: template static void copyIterImpl(void **dest, void * const * src) - { IteratorOwner::assign(dest, *static_cast(*src)); } + { IteratorOwner::assign(dest, src); } public: template QSequentialIterableImpl(const T*p) @@ -1122,7 +1130,7 @@ public: template static void copyIterImpl(void **dest, void * const * src) - { IteratorOwner::assign(dest, *static_cast(*src)); } + { IteratorOwner::assign(dest, src); } public: template QAssociativeIterableImpl(const T*p)