Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
1 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
17 // note: MergeToMark is not atomic - a leave means that data has been removed
18 template <TBool StackOwnsEntry>
19 inline void CRuleMarkedStack<StackOwnsEntry>::MergeToMarkL(TInt aMarkType)
21 const TInt lastMark=this->RemoveMark(aMarkType);
22 if (this->Count()>lastMark)
24 CBNFNode* currentRule=this->Pop();
26 CleanupStack::PushL(currentRule);
28 while (this->Count()>lastMark)
30 CBNFNode* nextRule=this->Pop();
32 CleanupStack::PushL(nextRule);
33 currentRule->ReparentL(nextRule);
36 CleanupStack::Pop(2); // nextRule, currentRule
37 CleanupStack::PushL(nextRule); // nextRule
44 CleanupStack::Pop(); // currentRule
45 this->PushL(currentRule);