Follow-up Comment #20, bug #18087 (project freeciv):

>> I only noticed one [memory leak]: in sg_load_map_known()), 
>> SAVE_MAP_CHAR() -> sg_failure_ret() -> sg_check_ret() can 
>> return prematurely.
> I will try to find a way to handle such cases. Would it help to 
> add a (possible) goto action to the macro, i.e goto CLEANUP? 
Having a standard "goto CLEANUP" would oblige every direct or indirect caller
to have a CLEANUP label, and perhaps limit you to one use of this stuff per
function, neither of which is likely to be acceptable. I'm not 100% sure what
the answer is; probably something like adding a "cleanup" argument to the
macro, which is executed as code before returning, and into which you'd put
"free(whatever)".
Anyway, I've raised bug #18347 about this.

>> trunk-S2_3-hugemap-colatitude.diff 
> It is only needed if the map size is increased further (patch 3).
Thanks for confirming.

> Is there something like #error? It could stop compilation if 
> the check fails ... 
#if/#error looks like the right thing (and would probably work in this case)
but often it's subtly wrong or annoyingly incapable (no sizeof, etc).
I've raised patch #2811 for a non-preprocessor static assert mechanism.

    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?18087>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to