diff options
author | dgp <dgp@users.sourceforge.net> | 2011-07-15 17:53:57 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-07-15 17:53:57 (GMT) |
commit | 1740ef8b435c39a49f9dcf65a14fee0ed3e553d9 (patch) | |
tree | 6886898b0e62f4bbbf4ba87fc0019845618be529 /generic | |
parent | 08b97e3f0d1b5a3d5000861c827e6ade5e4eda2f (diff) | |
parent | 94c90bd10e4e6d1c7f48de600f32cee2735b7d58 (diff) | |
download | tcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.zip tcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.tar.gz tcl-1740ef8b435c39a49f9dcf65a14fee0ed3e553d9.tar.bz2 |
Avoid segfaults when RecordByteCodeStats() is called in a deleted interp.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclCompile.c | 5 |
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; |