Tcl Source Code

Check-in [39f6ebe301]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:bug fix: avoid segfaulting by deleted interp in RecordByteCodeStats
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 39f6ebe30125d6089eb27b41f5077b8bb4baea8a
User & Date: sebres 2012-02-17 15:14:16
References
2012-02-17
17:15
Merged core-8-5-branch segfault fix (commits [39f6ebe301] and [a6aa5be5b7]). check-in: 7135bc0716 user: andreask tags: trunk
17:12
Fix: Removed C99ism (in-block variable declaration) from commit [39f6ebe301] which prevents building... check-in: a6aa5be5b7 user: andreask tags: core-8-5-branch
Context
2012-02-17
17:12
Fix: Removed C99ism (in-block variable declaration) from commit [39f6ebe301] which prevents building... check-in: a6aa5be5b7 user: andreask tags: core-8-5-branch
15:14
bug fix: avoid segfaulting by deleted interp in RecordByteCodeStats check-in: 39f6ebe301 user: sebres tags: core-8-5-branch
2012-02-16
23:09
[Bug 2233954] AIX: compile error check-in: 66427b5db9 user: jan.nijtmans tags: core-8-5-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclCompile.c.

4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099

4100
4101
4102
4103
4104
4105
4106

void
RecordByteCodeStats(
    ByteCode *codePtr)		/* Points to ByteCode structure with info
				 * to add to accumulated statistics. */
{
    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;
    statsPtr->currentSrcBytes += (double) codePtr->numSrcBytes;
    statsPtr->currentByteCodeBytes += (double) codePtr->structureSize;








<
<




>







4087
4088
4089
4090
4091
4092
4093


4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105

void
RecordByteCodeStats(
    ByteCode *codePtr)		/* Points to ByteCode structure with info
				 * to add to accumulated statistics. */
{
    Interp *iPtr = (Interp *) *codePtr->interpHandle;


    if (iPtr == NULL) {
	/* Avoid segfaulting in case we're called in a deleted interp */
	return;
    }
    register ByteCodeStats *statsPtr = &(iPtr->stats);

    statsPtr->numCompilations++;
    statsPtr->totalSrcBytes += (double) codePtr->numSrcBytes;
    statsPtr->totalByteCodeBytes += (double) codePtr->structureSize;
    statsPtr->currentSrcBytes += (double) codePtr->numSrcBytes;
    statsPtr->currentByteCodeBytes += (double) codePtr->structureSize;