MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / yaml_parser_load_scalar

Function yaml_parser_load_scalar

external/libyaml/src/loader.c:374–408  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

372 */
373
374static int
375yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *event,
376 struct loader_ctx *ctx)
377{
378 yaml_node_t node;
379 int index;
380 yaml_char_t *tag = event->data.scalar.tag;
381
382 if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error;
383
384 if (!tag || strcmp((char *)tag, "!") == 0) {
385 yaml_free(tag);
386 tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SCALAR_TAG);
387 if (!tag) goto error;
388 }
389
390 SCALAR_NODE_INIT(node, tag, event->data.scalar.value,
391 event->data.scalar.length, event->data.scalar.style,
392 event->start_mark, event->end_mark);
393
394 if (!PUSH(parser, parser->document->nodes, node)) goto error;
395
396 index = parser->document->nodes.top - parser->document->nodes.start;
397
398 if (!yaml_parser_register_anchor(parser, index,
399 event->data.scalar.anchor)) return 0;
400
401 return yaml_parser_load_node_add(parser, ctx, index);
402
403error:
404 yaml_free(tag);
405 yaml_free(event->data.scalar.anchor);
406 yaml_free(event->data.scalar.value);
407 return 0;
408}
409
410/*
411 * Compose a sequence node.

Callers 1

yaml_parser_load_nodesFunction · 0.85

Calls 4

yaml_freeFunction · 0.85
yaml_strdupFunction · 0.85

Tested by

no test coverage detected