GType memleak fixes
Running gjs-tests.gtester with asan enabled, we get these leaks:
Direct leak of 160 byte(s) in 20 object(s) allocated from:
#0 0x7f6b0e37bb60 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xefb60)
#1 0x7f6b0da6a103 in gjs_gtype_create_gtype_wrapper /media/M2/GNOME/gjs/gi/gtype.cpp:171
#2 0x7f6b0d9d8a98 in gjs_value_from_g_argument /media/M2/GNOME/gjs/gi/arg.cpp:2712
#3 0x7f6b0da30313 in gjs_invoke_c_function /media/M2/GNOME/gjs/gi/function.cpp:1155
#4 0x7f6b0da339eb in function_call /media/M2/GNOME/gjs/gi/function.cpp:1413
#5 0x7f6b0c7be163 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f163)
#6 0x7f6b0c7b1800 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x142800)
#7 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#8 0x7f6b0c7be0c0 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f0c0)
#9 0x7f6b0c7be328 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f328)
#10 0x7f6b0caf1ce0 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x482ce0)
#11 0x7f6b0db337a8 in resolve_namespace_object /media/M2/GNOME/gjs/gi/repo.cpp:135
#12 0x7f6b0db35a9e in repo_resolve /media/M2/GNOME/gjs/gi/repo.cpp:189
#13 0x7f6b0cbde53f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x56f53f)
#14 0x7f6b0c7a484e (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x13584e)
#15 0x7f6b0c7b290f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14390f)
#16 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#17 0x7f6b0c7bf63a (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15063a)
#18 0x7f6b0c7bf76b (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15076b)
#19 0x7f6b0cad20cd (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4630cd)
#20 0x7f6b0cad21da (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4631da)
#21 0x7f6b0dbd22a9 in gjs_eval_with_scope /media/M2/GNOME/gjs/gjs/jsapi-util.cpp:821
#22 0x7f6b0db703b8 in gjs_context_eval /media/M2/GNOME/gjs/gjs/context.cpp:928
#23 0x55a53ebd44f0 in gjstest_test_func_gjs_gobject_js_defined_type /media/M2/GNOME/gjs/test/gjs-tests.cpp:104
#24 0x7f6b0d028f79 in test_case_run ../../glib/glib/gtestutils.c:2318
#25 0x7f6b0d028f79 in g_test_run_suite_internal ../../glib/glib/gtestutils.c:2403
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f6b0e37bb60 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xefb60)
#1 0x7f6b0da6a103 in gjs_gtype_create_gtype_wrapper /media/M2/GNOME/gjs/gi/gtype.cpp:171
#2 0x7f6b0d9d8a98 in gjs_value_from_g_argument /media/M2/GNOME/gjs/gi/arg.cpp:2712
#3 0x7f6b0da30313 in gjs_invoke_c_function /media/M2/GNOME/gjs/gi/function.cpp:1155
#4 0x7f6b0da339eb in function_call /media/M2/GNOME/gjs/gi/function.cpp:1413
#5 0x10d462eb17c4 (<unknown module>)
#6 0x621000bf80b7 (<unknown module>)
#7 0x10d462ea94e7 (<unknown module>)
#8 0x7f6b0c95f120 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x2f0120)
#9 0x7f6b0c7b8cd8 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x149cd8)
#10 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#11 0x7f6b0c7be0c0 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f0c0)
#12 0x7f6b0c7be328 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f328)
#13 0x7f6b0caf1ce0 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x482ce0)
#14 0x7f6b0db337a8 in resolve_namespace_object /media/M2/GNOME/gjs/gi/repo.cpp:135
#15 0x7f6b0db35a9e in repo_resolve /media/M2/GNOME/gjs/gi/repo.cpp:189
#16 0x7f6b0cbde53f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x56f53f)
#17 0x7f6b0c7a484e (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x13584e)
#18 0x7f6b0c7b290f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14390f)
#19 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#20 0x7f6b0c7bf63a (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15063a)
#21 0x7f6b0c7bf76b (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15076b)
#22 0x7f6b0cad20cd (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4630cd)
#23 0x7f6b0cad21da (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4631da)
#24 0x7f6b0dbd22a9 in gjs_eval_with_scope /media/M2/GNOME/gjs/gjs/jsapi-util.cpp:821
#25 0x7f6b0db703b8 in gjs_context_eval /media/M2/GNOME/gjs/gjs/context.cpp:928
#26 0x55a53ebd44f0 in gjstest_test_func_gjs_gobject_js_defined_type /media/M2/GNOME/gjs/test/gjs-tests.cpp:104
#27 0x7f6b0d028f79 in test_case_run ../../glib/glib/gtestutils.c:2318
#28 0x7f6b0d028f79 in g_test_run_suite_internal ../../glib/glib/gtestutils.c:2403
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f6b0e37bb60 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xefb60)
#1 0x7f6b0da6a103 in gjs_gtype_create_gtype_wrapper /media/M2/GNOME/gjs/gi/gtype.cpp:171
#2 0x7f6b0da9fcc0 in gjs_define_object_class /media/M2/GNOME/gjs/gi/object.cpp:2245
#3 0x7f6b0db1ea5f in gjs_register_type /media/M2/GNOME/gjs/gi/private.cpp:305
#4 0x7f6b0c7bdf2b (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14ef2b)
#5 0x7f6b0c7b1800 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x142800)
#6 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#7 0x7f6b0c7bf63a (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15063a)
#8 0x7f6b0c7bf76b (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15076b)
#9 0x7f6b0cad20cd (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4630cd)
#10 0x7f6b0cad21da (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4631da)
#11 0x7f6b0dbd22a9 in gjs_eval_with_scope /media/M2/GNOME/gjs/gjs/jsapi-util.cpp:821
#12 0x7f6b0db703b8 in gjs_context_eval /media/M2/GNOME/gjs/gjs/context.cpp:928
#13 0x55a53ebd44f0 in gjstest_test_func_gjs_gobject_js_defined_type /media/M2/GNOME/gjs/test/gjs-tests.cpp:104
#14 0x7f6b0d028f79 in test_case_run ../../glib/glib/gtestutils.c:2318
#15 0x7f6b0d028f79 in g_test_run_suite_internal ../../glib/glib/gtestutils.c:2403
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f6b0e37bb60 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xefb60)
#1 0x7f6b0da6a103 in gjs_gtype_create_gtype_wrapper /media/M2/GNOME/gjs/gi/gtype.cpp:171
#2 0x7f6b0d9d8a98 in gjs_value_from_g_argument /media/M2/GNOME/gjs/gi/arg.cpp:2712
#3 0x7f6b0da30313 in gjs_invoke_c_function /media/M2/GNOME/gjs/gi/function.cpp:1155
#4 0x7f6b0da339eb in function_call /media/M2/GNOME/gjs/gi/function.cpp:1413
#5 0x7f6b0c7be163 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f163)
#6 0x7f6b0c8a1977 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x232977)
#7 0x10d462eae41a (<unknown module>)
#8 0x621000bf7edf (<unknown module>)
#9 0x10d462ea94e7 (<unknown module>)
#10 0x7f6b0c95f120 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x2f0120)
#11 0x7f6b0c7b8cd8 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x149cd8)
#12 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#13 0x7f6b0c7be0c0 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f0c0)
#14 0x7f6b0c7be328 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14f328)
#15 0x7f6b0caf1ce0 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x482ce0)
#16 0x7f6b0db337a8 in resolve_namespace_object /media/M2/GNOME/gjs/gi/repo.cpp:135
#17 0x7f6b0db35a9e in repo_resolve /media/M2/GNOME/gjs/gi/repo.cpp:189
#18 0x7f6b0cbde53f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x56f53f)
#19 0x7f6b0c7a484e (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x13584e)
#20 0x7f6b0c7b290f (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14390f)
#21 0x7f6b0c7bdaf5 (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x14eaf5)
#22 0x7f6b0c7bf63a (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15063a)
#23 0x7f6b0c7bf76b (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x15076b)
#24 0x7f6b0cad20cd (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4630cd)
#25 0x7f6b0cad21da (/usr/lib/x86_64-linux-gnu/libmozjs-60.so.0+0x4631da)
#26 0x7f6b0dbd22a9 in gjs_eval_with_scope /media/M2/GNOME/gjs/gjs/jsapi-util.cpp:821
#27 0x7f6b0db703b8 in gjs_context_eval /media/M2/GNOME/gjs/gjs/context.cpp:928
#28 0x55a53ebd44f0 in gjstest_test_func_gjs_gobject_js_defined_type /media/M2/GNOME/gjs/test/gjs-tests.cpp:104
#29 0x7f6b0d028f79 in test_case_run ../../glib/glib/gtestutils.c:2318
#30 0x7f6b0d028f79 in g_test_run_suite_internal ../../glib/glib/gtestutils.c:2403
SUMMARY: AddressSanitizer: 184 byte(s) leaked in 23 allocation(s).
Fixed them using smart pointers, first commit uses a simpler solution. But I guess this one is easier to maintain.