summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2011-07-15 17:53:57 (GMT)
committerdgp <dgp@users.sourceforge.net>2011-07-15 17:53:57 (GMT)
commit1740ef8b435c39a49f9dcf65a14fee0ed3e553d9 (patch)
tree6886898b0e62f4bbbf4ba87fc0019845618be529 /generic/tclCompile.c
parent08b97e3f0d1b5a3d5000861c827e6ade5e4eda2f (diff)
parent94c90bd10e4e6d1c7f48de600f32cee2735b7d58 (diff)
downloadtcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.zip
tcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.tar.gz
tcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.tar.bz2
Avoid segfaults when RecordByteCodeStats() is called in a deleted interp.
Diffstat (limited to 'generic/tclCompile.c')
-rw-r--r--generic/tclCompile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 7f11e0e..6d64feb 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -4093,6 +4093,11 @@ RecordByteCodeStats(
Interp *iPtr = (Interp *) *codePtr->interpHandle;
register ByteCodeStats *statsPtr = &(iPtr->stats);
+ if (iPtr == NULL) {
+ /* Avoid segfaulting in case we're called in a deleted interp */
+ return;
+ }
+
statsPtr->numCompilations++;
statsPtr->totalSrcBytes += (double) codePtr->numSrcBytes;
statsPtr->totalByteCodeBytes += (double) codePtr->structureSize;