Compare commits

..

2 Commits
v7.4.2 ... 7.x

Author SHA1 Message Date
509807d3c2 Remove CollectionIterator::nextId_ 2025-07-10 19:16:47 +02:00
c07744dc0d CI: upgrade Windows runner 2025-06-26 20:47:57 +02:00
3 changed files with 12 additions and 17 deletions

View File

@ -179,19 +179,19 @@ jobs:
conf_test_windows:
name: Test configuration on Windows
runs-on: windows-2019
runs-on: windows-2022
needs: [gcc, clang]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: 32-bit
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
cl /Isrc extras/conf_test/x86.cpp
shell: cmd
- name: 64-bit
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cl /Isrc extras/conf_test/x64.cpp
shell: cmd

View File

@ -59,10 +59,11 @@ class CollectionIterator {
}
private:
CollectionIterator(VariantData* slot, SlotId slotId);
CollectionIterator(VariantData* slot, SlotId slotId)
: slot_(slot), currentId_(slotId) {}
VariantData* slot_;
SlotId currentId_, nextId_;
SlotId currentId_;
};
class CollectionData {

View File

@ -12,17 +12,11 @@
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
inline CollectionIterator::CollectionIterator(VariantData* slot, SlotId slotId)
: slot_(slot), currentId_(slotId) {
nextId_ = slot_ ? slot_->next() : NULL_SLOT;
}
inline void CollectionIterator::next(const ResourceManager* resources) {
ARDUINOJSON_ASSERT(currentId_ != NULL_SLOT);
slot_ = resources->getVariant(nextId_);
currentId_ = nextId_;
if (slot_)
nextId_ = slot_->next();
ARDUINOJSON_ASSERT(slot_);
auto nextId = slot_->next();
slot_ = resources->getVariant(nextId);
currentId_ = nextId;
}
inline CollectionData::iterator CollectionData::createIterator(
@ -104,9 +98,9 @@ inline void CollectionData::removePair(ObjectData::iterator it,
if (it.done())
return;
auto keySlot = it.slot_;
auto keySlot = it.data();
auto valueId = it.nextId_;
auto valueId = keySlot->next();
auto valueSlot = resources->getVariant(valueId);
// remove value slot