Hi On Sun, Apr 26, 2020 at 4:54 PM Allan McRae <allan@archlinux.org> wrote:
On 24/4/20 2:40 pm, Anatol Pomozov wrote:
It frees all the dynamically allocated fields plus the struct itself
How many times will you use this? Across how many functions?
Currently my tree uses this macro 6 times. All of them in error codepath like this one: STRDUP(payload->fileurl, url, DLOAD_PAYLOAD_FREE(payload); GOTO_ERR(handle, ALPM_ERR_MEMORY, err)); An alternative to it is to inline DLOAD_PAYLOAD_FREE() macro into the STRDUP parameter. But it might look too verbose in this use-case: STRDUP(payload->fileurl, url, _alpm_dload_payload_reset(payload); FREE(payload); GOTO_ERR(handle, ALPM_ERR_MEMORY, err));
We usually #unset defines not used globally too.
I am not sure I understand this #unset requirement. Could you please give an example how it should work here?