@@ -167,19 +167,20 @@ void Emitter<Writer>::_visit_stream(id_type id)
167167 ++m_depth;
168168 for (id_type child = first_child; child != NONE ; child = m_tree->next_sibling (child))
169169 {
170+ NodeType ty = m_tree->type (child);
170171 m_ilevel = 0 ;
171172 _write_pws_and_pend (_PWS_NONE);
172173 _top_open_entry (child);
173174 _visit_doc (child);
174175 _top_close_entry (child);
175- if (m_tree-> is_val (child ))
176+ if (ty. is_val ())
176177 {
177- if (m_tree-> type (child) & VALNIL )
178+ if (ty & VALNIL )
178179 _pend_newl ();
179180 }
180- else if (m_tree-> is_container (child ))
181+ else if (ty. is_container ())
181182 {
182- if (m_tree-> is_flow (child ))
183+ if (ty. is_flow ())
183184 _pend_newl ();
184185 }
185186 if (m_tree->next_sibling (child) != NONE )
@@ -243,7 +244,7 @@ void Emitter<Writer>::_visit_doc_val(id_type id)
243244 _indent (m_ilevel);
244245 }
245246 _write_pws_and_pend (_PWS_NONE);
246- if (m_tree-> is_val_ref (id ))
247+ if (ty. is_val_ref ())
247248 {
248249 _write_ref (val);
249250 }
@@ -324,7 +325,8 @@ void Emitter<Writer>::_top_open_entry(id_type node)
324325template <class Writer >
325326void Emitter<Writer>::_top_close_entry(id_type node)
326327{
327- if (m_tree->is_val (node) && !(m_tree->type (node) & VALNIL ))
328+ NodeType ty = m_tree->type (node);
329+ if (ty.is_val () && !(ty & VALNIL ))
328330 {
329331 _pend_newl ();
330332 }
@@ -474,8 +476,8 @@ void Emitter<Writer>::_blck_write_qmrk(id_type node, csubstr key, type_bits ty,
474476template <class Writer >
475477void Emitter<Writer>::_blck_map_open_entry(id_type node)
476478{
477- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->has_key (node), m_tree, node);
478479 NodeType ty = m_tree->type (node);
480+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), ty.has_key (), m_tree, node);
479481 csubstr key = m_tree->key (node);
480482 if (!(ty & (KEY_STYLE |KEYREF )))
481483 ty |= (scalar_style_choose (key) & KEY_STYLE );
@@ -549,7 +551,7 @@ void Emitter<Writer>::_blck_close_entry(id_type node)
549551template <class Writer >
550552void Emitter<Writer>::_visit_blck_seq(id_type node)
551553{
552- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_seq (node), m_tree, node);
554+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_seq ( ), m_tree, node);
553555 bool empty = true ;
554556 for (id_type child = m_tree->first_child (node); child != NONE ; child = m_tree->next_sibling (child))
555557 {
@@ -595,7 +597,7 @@ void Emitter<Writer>::_visit_blck_seq(id_type node)
595597template <class Writer >
596598void Emitter<Writer>::_visit_blck_map(id_type node)
597599{
598- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_map (node), m_tree, node);
600+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_map ( ), m_tree, node);
599601 bool empty = true ;
600602 for (id_type child = m_tree->first_child (node); child != NONE ; child = m_tree->next_sibling (child))
601603 {
@@ -641,7 +643,7 @@ void Emitter<Writer>::_visit_blck_map(id_type node)
641643template <class Writer >
642644void Emitter<Writer>::_visit_flow_sl_seq(id_type node)
643645{
644- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_seq (node), m_tree, node);
646+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_seq ( ), m_tree, node);
645647 _write (' [' );
646648 for (id_type child = m_tree->first_child (node), last = m_tree->last_child (node); child != NONE ; child = m_tree->next_sibling (child))
647649 {
@@ -680,7 +682,7 @@ void Emitter<Writer>::_visit_flow_sl_seq(id_type node)
680682template <class Writer >
681683void Emitter<Writer>::_visit_flow_ml_seq(id_type node)
682684{
683- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_seq (node), m_tree, node);
685+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_seq ( ), m_tree, node);
684686 _write (' [' );
685687 _pend_newl ();
686688 if (m_opts.indent_flow_ml ()) ++m_ilevel;
@@ -723,7 +725,7 @@ void Emitter<Writer>::_visit_flow_ml_seq(id_type node)
723725template <class Writer >
724726void Emitter<Writer>::_visit_flow_sl_map(id_type node)
725727{
726- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_map (node), m_tree, node);
728+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_map ( ), m_tree, node);
727729 _write (' {' );
728730 for (id_type child = m_tree->first_child (node), last = m_tree->last_child (node); child != NONE ; child = m_tree->next_sibling (child))
729731 {
@@ -763,7 +765,7 @@ void Emitter<Writer>::_visit_flow_sl_map(id_type node)
763765template <class Writer >
764766void Emitter<Writer>::_visit_flow_ml_map(id_type node)
765767{
766- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_map (node), m_tree, node);
768+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->type (node). is_map ( ), m_tree, node);
767769 _write (' {' );
768770 _pend_newl ();
769771 if (m_opts.indent_flow_ml ()) ++m_ilevel;
@@ -806,12 +808,12 @@ void Emitter<Writer>::_visit_flow_ml_map(id_type node)
806808template <class Writer >
807809void Emitter<Writer>::_visit_blck(id_type node)
808810{
809- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !m_tree->is_stream (node), m_tree, node);
810- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_container (node) || m_tree->is_doc (node), m_tree, node);
811+ const NodeType ty = m_tree->type (node);
812+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !ty.is_stream (), m_tree, node);
813+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), ty.is_container () || ty.is_doc (), m_tree, node);
811814 _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_root (node) || (m_tree->parent_is_map (node) || m_tree->parent_is_seq (node)), m_tree, node);
812815 if (C4_UNLIKELY (m_depth > m_opts.max_depth ()))
813816 _RYML_ERR_VISIT_ (m_tree->callbacks (), m_tree, node, " max depth exceeded" );
814- const NodeType ty = m_tree->type (node);
815817 if (ty.is_seq ())
816818 {
817819 _visit_blck_seq (node);
@@ -829,12 +831,12 @@ void Emitter<Writer>::_visit_blck(id_type node)
829831template <class Writer >
830832void Emitter<Writer>::_visit_flow_sl(id_type node)
831833{
832- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !m_tree->is_stream (node), m_tree, node);
833- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_container (node) || m_tree->is_doc (node), m_tree, node);
834+ const NodeType ty = m_tree->type (node);
835+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !ty.is_stream (), m_tree, node);
836+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), ty.is_container () || ty.is_doc (), m_tree, node);
834837 _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_root (node) || (m_tree->parent_is_map (node) || m_tree->parent_is_seq (node)), m_tree, node);
835838 if (C4_UNLIKELY (m_depth > m_opts.max_depth ()))
836839 _RYML_ERR_VISIT_ (m_tree->callbacks (), m_tree, node, " max depth exceeded" );
837- const NodeType ty = m_tree->type (node);
838840 if (ty.is_seq ())
839841 {
840842 _visit_flow_sl_seq (node);
@@ -852,12 +854,12 @@ void Emitter<Writer>::_visit_flow_sl(id_type node)
852854template <class Writer >
853855void Emitter<Writer>::_visit_flow_ml(id_type node)
854856{
855- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !m_tree->is_stream (node), m_tree, node);
856- _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_container (node) || m_tree->is_doc (node), m_tree, node);
857+ const NodeType ty = m_tree->type (node);
858+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), !ty.is_stream (), m_tree, node);
859+ _RYML_ASSERT_VISIT_ (m_tree->callbacks (), ty.is_container () || ty.is_doc (), m_tree, node);
857860 _RYML_ASSERT_VISIT_ (m_tree->callbacks (), m_tree->is_root (node) || (m_tree->parent_is_map (node) || m_tree->parent_is_seq (node)), m_tree, node);
858861 if (C4_UNLIKELY (m_depth > m_opts.max_depth ()))
859862 _RYML_ERR_VISIT_ (m_tree->callbacks (), m_tree, node, " max depth exceeded" );
860- const NodeType ty = m_tree->type (node);
861863 if (ty.is_seq ())
862864 {
863865 _visit_flow_ml_seq (node);
@@ -1275,10 +1277,10 @@ void Emitter<Writer>::_json_emit(id_type id)
12751277template <class Writer >
12761278void Emitter<Writer>::_json_visit_sl(id_type id, id_type depth)
12771279{
1278- _RYML_CHECK_VISIT_ (m_tree->callbacks (), !m_tree->is_stream (id), m_tree, id); // JSON does not have streams
1280+ NodeType ty = m_tree->type (id);
1281+ _RYML_CHECK_VISIT_ (m_tree->callbacks (), !ty.is_stream (), m_tree, id); // JSON does not have streams
12791282 if (C4_UNLIKELY (depth > m_opts.max_depth ()))
12801283 _RYML_ERR_VISIT_ (m_tree->callbacks (), m_tree, id, " max depth exceeded" );
1281- NodeType ty = m_tree->type (id);
12821284 if (ty.is_keyval ())
12831285 {
12841286 _json_writek (id, ty);
@@ -1318,10 +1320,10 @@ void Emitter<Writer>::_json_visit_sl(id_type id, id_type depth)
13181320template <class Writer >
13191321void Emitter<Writer>::_json_visit_ml(id_type id, id_type depth)
13201322{
1321- _RYML_CHECK_VISIT_ (m_tree->callbacks (), !m_tree->is_stream (id), m_tree, id); // JSON does not have streams
1323+ NodeType ty = m_tree->type (id);
1324+ _RYML_CHECK_VISIT_ (m_tree->callbacks (), !ty.is_stream (), m_tree, id); // JSON does not have streams
13221325 if (C4_UNLIKELY (depth > m_opts.max_depth ()))
13231326 _RYML_ERR_VISIT_ (m_tree->callbacks (), m_tree, id, " max depth exceeded" );
1324- NodeType ty = m_tree->type (id);
13251327 if (ty.is_keyval ())
13261328 {
13271329 _json_writek (id, ty);
0 commit comments