yajl_config(hand, yajl_allow_comments, true);
/* Allow multiple values, i.e. multiple nodes to attach */
yajl_config(hand, yajl_allow_multiple_values, true);
- /* Allow strings that are not valid UTF8. Could be possible if a container
- * name contains such characters. If yajl stops parsing because of this, an
- * in-place restart could fail: see #3156. */
+ /* We don't need to validate that the input is valid UTF8 here.
+ * tree_append_json is called in two cases:
+ * 1. With the append_layout command. json_validate is called first and will
+ * fail on invalid UTF8 characters so we don't need to recheck.
+ * 2. With an in-place restart. The rest of the codebase should be
+ * responsible for producing valid UTF8 JSON output. If not,
+ * tree_append_json will just preserve invalid UTF8 strings in the tree
+ * instead of failing to parse the layout file which could lead to
+ * problems like in #3156.
+ * Either way, disabling UTF8 validation slightly speeds up yajl. */
yajl_config(hand, yajl_dont_validate_strings, true);
json_node = con;
to_focus = NULL;