> However, I still don't understand why it always chokes on the argv array.

If you mean the one we talked about:
```
        gchar **argv = NULL;

#ifndef G_OS_WIN32
        /* run within shell so we can use pipes */
        argv = g_new0(gchar *, 4);
        argv[0] = g_strdup("/bin/sh");
        argv[1] = g_strdup("-c");
        argv[2] = g_strdup(cmd);
        argv[3] = NULL;
#endif

        g_strfreev(argv);
```

then I think the problem is that cppcheck doesn't find the allocation function 
because in

https://github.com/danmar/cppcheck/blob/4ce76d0b58d1c26f906ad71180f9577f05f3642b/cfg/gtk.cfg#L702

`g_new0()` isn't listed as an allocation function for `g_strfreev()`. It could 
be added to `gtk.cfg` but I'm not sure if such a change would be accepted 
upstream as not all `g_new0()` calls can be deallocated with `g_strfreev()` or 
do by deallocating  the array in the code by a loop using `g_free()` which is 
kind of stupid.

This is all because of the `--library=gtk` command-line parameter which on the 
one hand fixes the macro problem, on the other hand the gtk.cfg config file 
doesn't seem to be universal enough to handle all possible cases (for instance, 
it also complains about `g_free(some_var)` where `some_var` is `NULL` which is 
legal for GTK). I'm wondering if it wouldn't be better to remove 
`--library=gtk` (and lose some of the allocations/deallocation checks) and 
handle the original problem of unknown macros in some other way (not sure how 
though).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/1196#issuecomment-1314534470
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany-plugins/issues/1196/[email protected]>

Reply via email to