1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "nsTObserverArray.h" 8 9 void AdjustIterators(index_type aModPos,diff_type aAdjustment)10nsTObserverArray_base::AdjustIterators(index_type aModPos, 11 diff_type aAdjustment) 12 { 13 NS_PRECONDITION(aAdjustment == -1 || aAdjustment == 1, "invalid adjustment"); 14 Iterator_base* iter = mIterators; 15 while (iter) { 16 if (iter->mPosition > aModPos) { 17 iter->mPosition += aAdjustment; 18 } 19 iter = iter->mNext; 20 } 21 } 22 23 void ClearIterators()24nsTObserverArray_base::ClearIterators() 25 { 26 Iterator_base* iter = mIterators; 27 while (iter) { 28 iter->mPosition = 0; 29 iter = iter->mNext; 30 } 31 } 32