Author: paultcochrane
Date: Sat Oct 6 05:54:59 2007
New Revision: 21916
Modified:
trunk/src/gc/register.c
Log:
[gc] Handling case when a NULL doomed sub is detected. Coverity CID 119.
Modified: trunk/src/gc/register.c
==============================================================================
--- trunk/src/gc/register.c (original)
+++ trunk/src/gc/register.c Sat Oct 6 05:54:59 2007
@@ -556,11 +556,17 @@
/* can't probably PIO_eprintf here */
const Parrot_sub * const doomed = PMC_sub(ctxp->current_sub);
- fprintf(stderr, "[free ctx %p of sub '%s']\n",
- (void *)ctxp,
- (doomed && doomed->name == (void*)0xdeadbeef
- ? "???"
- : (char*)doomed->name->strstart));
+ if (doomed) {
+ fprintf(stderr, "[free ctx %p of sub '%s']\n",
+ (void *)ctxp,
+ (doomed->name == (void*)0xdeadbeef
+ ? "???"
+ : (char*)doomed->name->strstart));
+ }
+ else {
+ real_exception(interp, NULL, 1,
+ "NULL doomed sub detected in Parrot_free_context");
+ }
}
#endif
if (ctxp->n_regs_used) {