On Sat, 2024-09-21 at 22:49 -0500, 4444-thor wrote: > From: thor <th...@protonmail.com> > > This is the second revision of: > > > https://gcc.gnu.org/pipermail/gcc-patches/2024-September/662849.html > > I've incorporated the feedback given both by Richard and David - I > didn't > find any memory leaks when testing in valgrind :)
Thanks for the updated patch. [...snip...] > diff --git a/gcc/tree-emit-json.cc b/gcc/tree-emit-json.cc > new file mode 100644 > index 00000000000..df97069b922 > --- /dev/null > +++ b/gcc/tree-emit-json.cc [...snip...] Thanks for using std::unique_ptr, but I may have been unclear in my earlier email - please use it to indicate ownership of a heap-allocated pointer... > +/* Adds Identifier information to JSON object */ > + > +void > +identifier_node_add_json (tree t, std::unique_ptr<json::object> & json_obj) > + { > + const char* buff = IDENTIFIER_POINTER (t); > + json_obj->set_string("id_to_locale", identifier_to_locale(buff)); > + buff = IDENTIFIER_POINTER (t); > + json_obj->set_string("id_point", buff); > + } ...whereas here (and in many other places), the patch has a std::unique_ptr<json::object> &json_obj (expressing a reference to a a unique_ptr i.e. a non-modifiable non- null pointer to a pointer that manages the lifetime of a modifiable json::object) where, if I'm reading the code correctly, json::object &json_obj (expressing a non-modifiable non-null pointer to a modifiable json::object). would be much clearer and simpler. [...snip...] Hope the above makes sense; sorry if I'm being unclear. Dave