summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2014-05-20 03:23:01 -0400
committerFather Chrysostomos <sprout@cpan.org>2014-11-15 06:57:53 -0800
commit6edcbed6404ee551719c9a49397baea538aae7cc (patch)
treead31ebdeaa29319bfb89b5dd28ab266feb6cef03 /perl.c
parent1f9498d0e14a8f9d5a95c29b732bb33bb3c669d8 (diff)
downloadperl-6edcbed6404ee551719c9a49397baea538aae7cc.tar.gz
make debugging easier in memory allocator code in perl.c and util.c
-show intermediate values to make C debugging easier -Perl_safesysfree overwrote var where with a different value, this caused alot of confusion for me of trying to hunt for a pointer from a stack trace with conditional breakpoints, so don't change var where in an unoptimized build -in Perl_safesysrealloc and Perl_safesysmalloc provide 1 exit path, so the returned value is easily seen and BPed on unoptimized builds
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/perl.c b/perl.c
index a5f159224e..eb875fcf47 100644
--- a/perl.c
+++ b/perl.c
@@ -1364,8 +1364,11 @@ perl_free(pTHXx)
"free this thread's memory\n");
PL_debug &= ~ DEBUG_m_FLAG;
}
- while(aTHXx->Imemory_debug_header.next != &(aTHXx->Imemory_debug_header))
- safesysfree(PERL_MEMORY_DEBUG_HEADER_SIZE + (char *)(aTHXx->Imemory_debug_header.next));
+ while(aTHXx->Imemory_debug_header.next != &(aTHXx->Imemory_debug_header)){
+ char * next = (char *)(aTHXx->Imemory_debug_header.next);
+ Malloc_t ptr = PERL_MEMORY_DEBUG_HEADER_SIZE + next;
+ safesysfree(ptr);
+ }
PL_debug = old_debug;
}
}