diff options
author | David Malcolm <dmalcolm@redhat.com> | 2023-11-14 11:01:39 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2023-11-14 11:01:39 -0500 |
commit | 070944fdd6394c992885f33f5bde8a231d37fa7f (patch) | |
tree | 64c7c7f0674a3bc0084122c1cdb674812993d75d /gcc/json.h | |
parent | 4db820928065eccbeb725406450d826186582b9f (diff) | |
download | gcc-070944fdd6394c992885f33f5bde8a231d37fa7f.zip gcc-070944fdd6394c992885f33f5bde8a231d37fa7f.tar.gz gcc-070944fdd6394c992885f33f5bde8a231d37fa7f.tar.bz2 |
json: reduce use of naked new in json-building code
No functional change intended.
gcc/ChangeLog:
* diagnostic-format-json.cc: Use type-specific "set_*" functions
of json::object to avoid naked new of json value subclasses.
* diagnostic-format-sarif.cc: Likewise.
* gcov.cc: Likewise.
* json.cc (object::set_string): New.
(object::set_integer): New.
(object::set_float): New.
(object::set_bool): New.
(selftest::test_writing_objects): Use object::set_string.
* json.h (object::set_string): New decl.
(object::set_integer): New decl.
(object::set_float): New decl.
(object::set_bool): New decl.
* optinfo-emit-json.cc: Use type-specific "set_*" functions of
json::object to avoid naked new of json value subclasses.
* timevar.cc: Likewise.
* tree-diagnostic-path.cc: Likewise.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/json.h')
-rw-r--r-- | gcc/json.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -102,6 +102,13 @@ class object : public value void set (const char *key, value *v); value *get (const char *key) const; + void set_string (const char *key, const char *utf8_value); + void set_integer (const char *key, long v); + void set_float (const char *key, double v); + + /* Set to literal true/false. */ + void set_bool (const char *key, bool v); + private: typedef hash_map <char *, value *, simple_hashmap_traits<nofree_string_hash, value *> > map_t; |