# New Ticket Created by Lars Balker Rasmussen
# Please include the string: [perl #23102]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=23102 >
[i386, FreeBSD 5.0]
Putting
#include <assert.h>
#define mem_sys_free(x) do { assert(x != NULL); mem_sys_free(x); x = NULL; }
while (0)
in include/parrot/memory.h caused an abort running pmc.t's
t/pmc/pmc_73.pasm,
Assertion failed: ((pmc)->pmc_ext->data != NULL), function
Parrot_Scratchpad_destroy, file scratchpad.pmc, line 34.
with the following backtrace
#0 0x2822d613 in kill () from /usr/lib/libc.so.5
#1 0x28290cac in abort () from /usr/lib/libc.so.5
#2 0x2826b0ff in __assert () from /usr/lib/libc.so.5
#3 0x081637af in Parrot_Scratchpad_destroy (interpreter=0x81ba000,
pmc=0x81e765c) at scratchpad.pmc:34
#4 0x0814f354 in free_unused_pobjects (interpreter=0x81ba000, pool=0x81de180)
at dod.c:503
#5 0x0806e867 in Parrot_really_destroy (exit_code=0, vinterp=0x81ba000)
at interpreter.c:649
#6 0x0814fd99 in Parrot_exit (status=0) at exit.c:66
#7 0x0806c824 in main (argc=1, argv=0xbfbff7e0) at main.c:474
#8 0x0805a385 in _start ()
While freeing a null-pointer is legal, it's probably not intentional.
Cheers,
--
Lars Balker Rasmussen Consult::Perl