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)10 nsTObserverArray_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()24 nsTObserverArray_base::ClearIterators()
25 {
26   Iterator_base* iter = mIterators;
27   while (iter) {
28     iter->mPosition = 0;
29     iter = iter->mNext;
30   }
31 }
32