aboutsummaryrefslogtreecommitdiff
path: root/gcc/json.h
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2023-11-14 11:01:39 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2023-11-14 11:01:39 -0500
commit070944fdd6394c992885f33f5bde8a231d37fa7f (patch)
tree64c7c7f0674a3bc0084122c1cdb674812993d75d /gcc/json.h
parent4db820928065eccbeb725406450d826186582b9f (diff)
downloadgcc-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.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/json.h b/gcc/json.h
index 6cc58c8..6fadd11 100644
--- a/gcc/json.h
+++ b/gcc/json.h
@@ -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;