tree e78112f0b25071debf21b51be3e865f5d7c55f02
parent b1ec21d259c72559e2d170a09efc059d9fc58347
author Tim Duesterhus <tim@bastelstu.be> 1682178453 +0200
committer Willy Tarreau <w@1wt.eu> 1682202505 +0200
encoding latin1

CLEANUP: Stop checking the pointer before calling `pool_free()`

Changes performed with this Coccinelle patch:

    @@
    expression e;
    expression p;
    @@

    - if (e != NULL) {
    	pool_free(p, e);
    - }

    @@
    expression e;
    expression p;
    @@

    - if (e) {
    	pool_free(p, e);
    - }

    @@
    expression e;
    expression p;
    @@

    - if (e)
    	pool_free(p, e);

    @@
    expression e;
    expression p;
    @@

    - if (e != NULL)
    	pool_free(p, e);
