]> gcc.gnu.org Git - gcc.git/commitdiff
json: add array::append_string
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 24 Jul 2024 22:07:51 +0000 (18:07 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 24 Jul 2024 22:07:51 +0000 (18:07 -0400)
No functional change intended.

gcc/analyzer/ChangeLog:
* supergraph.cc (supernode::to_json): Avoid naked "new" by using
json::array::append_string.
(supernode::to_json): Likewise.

gcc/ChangeLog:
* diagnostic-format-sarif.cc (sarif_artifact::populate_roles):
Avoid naked "new" by using json::array::append_string.
(sarif_builder::maybe_make_kinds_array): Likewise.
* json.cc (json::array::append_string): New.
(selftest::test_writing_arrays): Use it.
* json.h (json::array::append_string): New decl.
* optinfo-emit-json.cc (optrecord_json_writer::pass_to_json):
Avoid naked "new" by using json::array::append_string.
(optrecord_json_writer::optinfo_to_json): Likewise.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/supergraph.cc
gcc/diagnostic-format-sarif.cc
gcc/json.cc
gcc/json.h
gcc/optinfo-emit-json.cc

index 4dc7942b26aaa486131007705773ac43b191df85..20c62856d4b6fd4905fc4e89db4012a6115d7033 100644 (file)
@@ -747,7 +747,7 @@ supernode::to_json () const
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
-       phi_arr->append (new json::string (pp_formatted_text (&pp)));
+       phi_arr->append_string (pp_formatted_text (&pp));
       }
     snode_obj->set ("phis", phi_arr);
   }
@@ -762,7 +762,7 @@ supernode::to_json () const
        pretty_printer pp;
        pp_format_decoder (&pp) = default_tree_printer;
        pp_gimple_stmt_1 (&pp, stmt, 0, (dump_flags_t)0);
-       stmt_arr->append (new json::string (pp_formatted_text (&pp)));
+       stmt_arr->append_string (pp_formatted_text (&pp));
       }
     snode_obj->set ("stmts", stmt_arr);
   }
index 225476995d13a5d9a8162849f2bcdeec842dc733..7105f78533183421af025f6fae371e8cecebfecb 100644 (file)
@@ -435,7 +435,7 @@ sarif_artifact::populate_roles ()
     if (bitmap_bit_p (m_roles, i))
       {
        enum diagnostic_artifact_role role = (enum diagnostic_artifact_role)i;
-       roles_arr->append (new json::string (get_artifact_role_string (role)));
+       roles_arr->append_string (get_artifact_role_string (role));
       }
   set ("roles", roles_arr);
 }
@@ -1394,13 +1394,13 @@ sarif_builder::maybe_make_kinds_array (diagnostic_event::meaning m) const
   json::array *kinds_arr = new json::array ();
   if (const char *verb_str
        = diagnostic_event::meaning::maybe_get_verb_str (m.m_verb))
-    kinds_arr->append (new json::string (verb_str));
+    kinds_arr->append_string (verb_str);
   if (const char *noun_str
        = diagnostic_event::meaning::maybe_get_noun_str (m.m_noun))
-    kinds_arr->append (new json::string (noun_str));
+    kinds_arr->append_string (noun_str);
   if (const char *property_str
        = diagnostic_event::meaning::maybe_get_property_str (m.m_property))
-    kinds_arr->append (new json::string (property_str));
+    kinds_arr->append_string (property_str);
   return kinds_arr;
 }
 
index 53edca5205567c3528874938147316d95ab56868..86490259dabf086bf8a2c4015dcae41771853f40 100644 (file)
@@ -286,6 +286,13 @@ array::append (value *v)
   m_elements.safe_push (v);
 }
 
+void
+array::append_string (const char *utf8_value)
+{
+  gcc_assert (utf8_value);
+  append (new json::string (utf8_value));
+}
+
 /* class json::float_number, a subclass of json::value, wrapping a double.  */
 
 /* Implementation of json::value::print for json::float_number.  */
@@ -432,7 +439,7 @@ test_writing_arrays ()
   arr.append (new json::string ("foo"));
   ASSERT_PRINT_EQ (arr, true, "[\"foo\"]");
 
-  arr.append (new json::string ("bar"));
+  arr.append_string ("bar");
   ASSERT_PRINT_EQ (arr, true,
                   "[\"foo\",\n"
                   " \"bar\"]");
index ad4f8c448f8c1db72ef09b6231140d9b3d8d442b..d3493a72d52523594de51dc97554e4aa914f09c5 100644 (file)
@@ -130,6 +130,7 @@ class array : public value
   void print (pretty_printer *pp, bool formatted) const final override;
 
   void append (value *v);
+  void append_string (const char *utf8_value);
 
  private:
   auto_vec<value *> m_elements;
index 1fa82d438db9c6b88a4b8b536d0a8cea7e4cc0b6..faae95fc232a06d11ef8acdc9fba45dade71dfef 100644 (file)
@@ -259,7 +259,7 @@ optrecord_json_writer::pass_to_json (opt_pass *pass)
         optgroup->name != NULL; optgroup++)
       if (optgroup->value != OPTGROUP_ALL
          && (pass->optinfo_flags & optgroup->value))
-       optgroups->append (new json::string (optgroup->name));
+       optgroups->append_string (optgroup->name);
   }
   obj->set_integer ("num", pass->static_pass_number);
   return obj;
@@ -347,7 +347,7 @@ optrecord_json_writer::optinfo_to_json (const optinfo *optinfo)
          gcc_unreachable ();
        case OPTINFO_ITEM_KIND_TEXT:
          {
-           message->append (new json::string (item->get_text ()));
+           message->append_string (item->get_text ());
          }
          break;
        case OPTINFO_ITEM_KIND_TREE:
This page took 0.067922 seconds and 5 git commands to generate.