Lines Matching refs:Stack
132 SmallVector<StackLevel, 4> Stack; in readFromBlob() local
136 Stack.push_back(StackLevel(Root, 0, (size_t)-1)); in readFromBlob()
143 if (Multi && Stack.size() == 1) { in readFromBlob()
182 if (Stack.empty()) in readFromBlob()
184 else if (Stack.back().Node.getKind() == Type::Array) { in readFromBlob()
186 auto &Array = Stack.back().Node.getArray(); in readFromBlob()
187 DestNode = &Array[Stack.back().Index++]; in readFromBlob()
189 auto &Map = Stack.back().Node.getMap(); in readFromBlob()
190 if (!Stack.back().MapEntry) { in readFromBlob()
192 Stack.back().MapKey = Node; in readFromBlob()
193 Stack.back().MapEntry = &Map[Node]; in readFromBlob()
197 DestNode = Stack.back().MapEntry; in readFromBlob()
198 Stack.back().MapEntry = nullptr; in readFromBlob()
199 ++Stack.back().Index; in readFromBlob()
206 DocNode MapKey = !Stack.empty() && !Stack.back().MapKey.isEmpty() in readFromBlob()
207 ? Stack.back().MapKey in readFromBlob()
221 Stack.push_back(StackLevel(*DestNode, MergeResult, Obj.Length, nullptr)); in readFromBlob()
228 while (!Stack.empty()) { in readFromBlob()
229 if (Stack.back().MapEntry) in readFromBlob()
231 if (Stack.back().Index != Stack.back().End) in readFromBlob()
233 Stack.pop_back(); in readFromBlob()
235 } while (!Stack.empty()); in readFromBlob()
251 SmallVector<WriterStackLevel, 4> Stack; in writeToBlob() local
257 Stack.push_back( in writeToBlob()
262 Stack.push_back( in writeToBlob()
286 while (!Stack.empty()) { in writeToBlob()
287 if (Stack.back().Node.getKind() == Type::Map) { in writeToBlob()
288 if (Stack.back().MapIt != Stack.back().Node.getMap().end()) in writeToBlob()
291 if (Stack.back().ArrayIt != Stack.back().Node.getArray().end()) in writeToBlob()
294 Stack.pop_back(); in writeToBlob()
296 if (Stack.empty()) in writeToBlob()
299 if (Stack.back().Node.getKind() == Type::Map) { in writeToBlob()
300 if (Stack.back().OnKey) { in writeToBlob()
302 Node = Stack.back().MapIt->first; in writeToBlob()
303 Stack.back().OnKey = false; in writeToBlob()
305 Node = Stack.back().MapIt->second; in writeToBlob()
306 ++Stack.back().MapIt; in writeToBlob()
307 Stack.back().OnKey = true; in writeToBlob()
310 Node = *Stack.back().ArrayIt; in writeToBlob()
311 ++Stack.back().ArrayIt; in writeToBlob()