This looks like it would be quite reasonable to always do this right after I alloc something. I actually found a memory leak in my JSON2 code when testing on pike 7.7 because string_to_utf8 potentially throws now (I think that was not there in pike 7.6). I have the feeling that there are more leaks of this types out there, especially because throwing behaviour may/did change.

When having a quick look I found that in Math.transforms in rIFFT() there are several Pike_error() calls after malloc. I guess that that part of Math is not really used much, especially because librfftw does not seem to be compatible anymore (may be wrong here).

I can write a patch later... there are also some typos I found some time ago when reading the docs.

arne

On Sat, 23 Aug 2008, Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) 
developers forum wrote:

ONERROR handle;
SET_ONERROR (handle, my_free_function, my_mem);
/* do stuff which may throw */
UNSET_ONERROR (handle);

If you want my_free_function to be called even if nothing was thrown,
use CALL_AND_UNSET_ONERROR instead.

  • cat... Arne Goedeke
    • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
      • ... Henrik Grubbstr�m (Lysator) @ Pike (-) developers forum
        • ... Arne Goedeke
      • ... Arne Goedeke
        • ... Mirar @ Pike developers forum
          • ... Arne Goedeke
        • ... Martin Stjernholm, Roxen IS @ Pike developers forum

Reply via email to