diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2022-11-22 14:02:11 +0200 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2022-12-10 07:40:11 +0200 |
commit | f3c998510d3a6c8fc468e449d66b0280119d0a8f (patch) | |
tree | 4acf402f22ff272e52a0d1513922cf2f76d7cb22 /src/plugins/platforms/android | |
parent | 2f440169c07e9501bad6f668c66961d49532eacc (diff) |
Fix infinite loop when iterating content uri sub-files/dirs
make QAbstractFileEngineIterator::currentFilePath() virtual
and implement it under AndroidContentFileEngine to return
current fileName because content uris shouldn't be constructed
manaully like normal file paths.
Pick-to: 6.4 6.2
Fixes: QTBUG-104776
Change-Id: I4643a73a3bd4019bedaa056c35468117bcec18dc
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Diffstat (limited to 'src/plugins/platforms/android')
3 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/platforms/android/androidcontentfileengine.cpp b/src/plugins/platforms/android/androidcontentfileengine.cpp index 04862ccba6..978dd5332b 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.cpp +++ b/src/plugins/platforms/android/androidcontentfileengine.cpp @@ -200,3 +200,8 @@ QString AndroidContentFileEngineIterator::currentFileName() const return QString(); return m_entries.at(m_index - 1); } + +QString AndroidContentFileEngineIterator::currentFilePath() const +{ + return currentFileName(); +} diff --git a/src/plugins/platforms/android/androidcontentfileengine.h b/src/plugins/platforms/android/androidcontentfileengine.h index e58c990c51..124336038e 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.h +++ b/src/plugins/platforms/android/androidcontentfileengine.h @@ -40,6 +40,7 @@ public: QString next() override; bool hasNext() const override; QString currentFileName() const override; + QString currentFilePath() const override; private: mutable QStringList m_entries; mutable int m_index = -1; diff --git a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp index bd1619e6db..67b2506e68 100644 --- a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp +++ b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp @@ -186,7 +186,7 @@ public: return m_currentIterator->currentFileName(); } - virtual QString currentFilePath() const + QString currentFilePath() const override { if (!m_currentIterator) return {}; |