MCPcopy Create free account
hub / github.com/altairwei/WizNotePlus / readValue

Method readValue

src/share/jsoncpp/jsoncpp.cpp:384–463  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

382}
383
384bool Reader::readValue() {
385 // readValue() may call itself only if it calls readObject() or ReadArray().
386 // These methods execute nodes_.push() just before and nodes_.pop)() just after calling readValue().
387 // parse() executes one nodes_.push(), so > instead of >=.
388 if (nodes_.size() > stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue().");
389
390 Token token;
391 skipCommentTokens(token);
392 bool successful = true;
393
394 if (collectComments_ && !commentsBefore_.empty()) {
395 currentValue().setComment(commentsBefore_, commentBefore);
396 commentsBefore_ = "";
397 }
398
399 switch (token.type_) {
400 case tokenObjectBegin:
401 successful = readObject(token);
402 currentValue().setOffsetLimit(current_ - begin_);
403 break;
404 case tokenArrayBegin:
405 successful = readArray(token);
406 currentValue().setOffsetLimit(current_ - begin_);
407 break;
408 case tokenNumber:
409 successful = decodeNumber(token);
410 break;
411 case tokenString:
412 successful = decodeString(token);
413 break;
414 case tokenTrue:
415 {
416 Value v(true);
417 currentValue().swapPayload(v);
418 currentValue().setOffsetStart(token.start_ - begin_);
419 currentValue().setOffsetLimit(token.end_ - begin_);
420 }
421 break;
422 case tokenFalse:
423 {
424 Value v(false);
425 currentValue().swapPayload(v);
426 currentValue().setOffsetStart(token.start_ - begin_);
427 currentValue().setOffsetLimit(token.end_ - begin_);
428 }
429 break;
430 case tokenNull:
431 {
432 Value v;
433 currentValue().swapPayload(v);
434 currentValue().setOffsetStart(token.start_ - begin_);
435 currentValue().setOffsetLimit(token.end_ - begin_);
436 }
437 break;
438 case tokenArraySeparator:
439 case tokenObjectEnd:
440 case tokenArrayEnd:
441 if (features_.allowDroppedNullPlaceholders_) {

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected