DMS-Parser-XS
view release on metacpan or search on metacpan
vendor/dms-c/dms.c view on Meta::CPAN
static bool is_flow_safe(const emitter *e, const dms_value *v,
const dms_breadcrumb_seg *path, size_t path_len);
static const dms_original_literal *find_form(const emitter *e,
const dms_breadcrumb_seg *path, size_t path_len);
/* Build + sort index arrays. In lite mode, both lookup arrays are
left NULL so every `find_first_match` short-circuits â comments are
dropped, integer base / string flavor fall back to canonical form. */
static void emitter_init(emitter *e, const dms_document *doc, bool lite) {
buf_init(&e->out);
buf_ensure(&e->out, 64 * 1024); /* pre-size: skip realloc cascade on typical-sized configs */
e->doc = doc;
e->comments_sorted = NULL;
e->forms_sorted = NULL;
e->path_buf = NULL;
e->path_buf_cap = 0;
e->lite = lite;
if (lite) return;
if (doc->num_comments > 0) {
e->comments_sorted = (size_t *)malloc(doc->num_comments * sizeof(size_t));
for (size_t i = 0; i < doc->num_comments; i++) e->comments_sorted[i] = i;
( run in 0.692 second using v1.01-cache-2.11-cpan-bbe5e583499 )