MCPcopy Create free account
hub / github.com/ComodoSecurity/openedr / readValue

Method readValue

edrav2/eprj/jsoncpp/src/lib_json/json_reader.cpp:161–236  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159}
160
161bool Reader::readValue() {
162 // readValue() may call itself only if it calls readObject() or ReadArray().
163 // These methods execute nodes_.push() just before and nodes_.pop)() just
164 // after calling readValue(). parse() executes one nodes_.push(), so > instead
165 // of >=.
166 if (nodes_.size() > stackLimit_g)
167 throwRuntimeError("Exceeded stackLimit in readValue().");
168
169 Token token;
170 skipCommentTokens(token);
171 bool successful = true;
172
173 if (collectComments_ && !commentsBefore_.empty()) {
174 currentValue().setComment(commentsBefore_, commentBefore);
175 commentsBefore_.clear();
176 }
177
178 switch (token.type_) {
179 case tokenObjectBegin:
180 successful = readObject(token);
181 currentValue().setOffsetLimit(current_ - begin_);
182 break;
183 case tokenArrayBegin:
184 successful = readArray(token);
185 currentValue().setOffsetLimit(current_ - begin_);
186 break;
187 case tokenNumber:
188 successful = decodeNumber(token);
189 break;
190 case tokenString:
191 successful = decodeString(token);
192 break;
193 case tokenTrue: {
194 Value v(true);
195 currentValue().swapPayload(v);
196 currentValue().setOffsetStart(token.start_ - begin_);
197 currentValue().setOffsetLimit(token.end_ - begin_);
198 } break;
199 case tokenFalse: {
200 Value v(false);
201 currentValue().swapPayload(v);
202 currentValue().setOffsetStart(token.start_ - begin_);
203 currentValue().setOffsetLimit(token.end_ - begin_);
204 } break;
205 case tokenNull: {
206 Value v;
207 currentValue().swapPayload(v);
208 currentValue().setOffsetStart(token.start_ - begin_);
209 currentValue().setOffsetLimit(token.end_ - begin_);
210 } break;
211 case tokenArraySeparator:
212 case tokenObjectEnd:
213 case tokenArrayEnd:
214 if (features_.allowDroppedNullPlaceholders_) {
215 // "Un-read" the current token and mark the current value as a null
216 // token.
217 current_--;
218 Value v;

Callers

nothing calls this directly

Calls 9

throwRuntimeErrorFunction · 0.85
infinityClass · 0.85
setCommentMethod · 0.80
setOffsetLimitMethod · 0.80
swapPayloadMethod · 0.80
setOffsetStartMethod · 0.80
sizeMethod · 0.45
emptyMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected