Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | simplification of check-in [c29648d90f] |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
eec9d69bc196db31f40c567c77d899d8 |
User & Date: | chw 2016-11-21 19:27:15.183 |
Context
2016-11-25
| ||
13:50 | further improvements of tclx's profile command check-in: c6070d8891 user: chw tags: trunk | |
2016-11-21
| ||
19:27 | simplification of check-in [c29648d90f] check-in: eec9d69bc1 user: chw tags: trunk | |
14:36 | add missing files to vu widgets directory check-in: 26fbc863bd user: chw tags: trunk | |
Changes
Changes to jni/tclx/generic/tclXprofile.c.
︙ | ︙ | |||
76 77 78 79 80 81 82 | int commandMode; /* Prof all commands? */ int evalMode; /* Use eval stack. */ Command *currentCmdPtr; /* Current command table entry. */ Tcl_CmdProc *savedStrCmdProc; /* Saved string command function */ ClientData savedStrCmdClientData; /* and clientData. */ Tcl_ObjCmdProc *savedObjCmdProc; /* Saved object command function */ #ifdef OBJ_AND_NRE | | < < < < | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | int commandMode; /* Prof all commands? */ int evalMode; /* Use eval stack. */ Command *currentCmdPtr; /* Current command table entry. */ Tcl_CmdProc *savedStrCmdProc; /* Saved string command function */ ClientData savedStrCmdClientData; /* and clientData. */ Tcl_ObjCmdProc *savedObjCmdProc; /* Saved object command function */ #ifdef OBJ_AND_NRE Tcl_ObjCmdProc *savedNreProc; /* and NRE function */ #endif ClientData savedObjCmdClientData; /* and clientData. */ int evalLevel; /* Eval level when invoked. */ clock_t realTime; /* Current real and CPU time. */ clock_t cpuTime; clock_t prevRealTime; /* Real and CPU time of previous */ clock_t prevCpuTime; /* trace. */ int updatedTimes; /* Has current times been updated?*/ profEntry_t *stackPtr; /* Proc/command nesting stack. */ |
︙ | ︙ | |||
149 150 151 152 153 154 155 | #ifdef OBJ_AND_NRE static int ProfNreCommandEval _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); | < < < < < | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | #ifdef OBJ_AND_NRE static int ProfNreCommandEval _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); static int ProfObjTraceRoutine _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int evalLevel, const char *command, Tcl_Command cmd, int objc, |
︙ | ︙ | |||
456 457 458 459 460 461 462 | currentCmdPtr->objProc = infoPtr->savedObjCmdProc; #ifdef OBJ_AND_NRE if (currentCmdPtr->nreProc == ProfNreCommandEval) currentCmdPtr->nreProc = infoPtr->savedNreProc; #endif if (currentCmdPtr->objClientData == (ClientData) infoPtr) currentCmdPtr->objClientData = infoPtr->savedObjCmdClientData; | < < < < < < < < < < | 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 | currentCmdPtr->objProc = infoPtr->savedObjCmdProc; #ifdef OBJ_AND_NRE if (currentCmdPtr->nreProc == ProfNreCommandEval) currentCmdPtr->nreProc = infoPtr->savedNreProc; #endif if (currentCmdPtr->objClientData == (ClientData) infoPtr) currentCmdPtr->objClientData = infoPtr->savedObjCmdClientData; infoPtr->currentCmdPtr = NULL; infoPtr->savedStrCmdProc = NULL; infoPtr->savedStrCmdClientData = NULL; infoPtr->savedObjCmdProc = NULL; #ifdef OBJ_AND_NRE infoPtr->savedNreProc = NULL; #endif infoPtr->savedObjCmdClientData = NULL; fullCmdNamePtr = Tcl_NewObj (); Tcl_GetCommandFullName (infoPtr->interp, (Tcl_Command) currentCmdPtr, fullCmdNamePtr); fullCmdName = Tcl_GetStringFromObj (fullCmdNamePtr, NULL); /* |
︙ | ︙ | |||
654 655 656 657 658 659 660 | result = (*currentCmdPtr->nreProc) (currentCmdPtr->objClientData, interp, objc, objv); ProfCommandEvalFinishup (infoPtr, isProc); return result; } | < < < < < < < < < < < < | 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | result = (*currentCmdPtr->nreProc) (currentCmdPtr->objClientData, interp, objc, objv); ProfCommandEvalFinishup (infoPtr, isProc); return result; } /*----------------------------------------------------------------------------- * ProfObjTraceRoutine -- * Routine called by Tcl_Eval to do profiling. It intercepts the current * command being executed by temporarily editing the command table. *----------------------------------------------------------------------------- */ |
︙ | ︙ | |||
707 708 709 710 711 712 713 | */ infoPtr->currentCmdPtr = cmdPtr; infoPtr->savedStrCmdProc = cmdPtr->proc; infoPtr->savedStrCmdClientData = cmdPtr->clientData; infoPtr->savedObjCmdProc = cmdPtr->objProc; infoPtr->savedNreProc = cmdPtr->nreProc; infoPtr->savedObjCmdClientData = cmdPtr->objClientData; | < < < < | 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 | */ infoPtr->currentCmdPtr = cmdPtr; infoPtr->savedStrCmdProc = cmdPtr->proc; infoPtr->savedStrCmdClientData = cmdPtr->clientData; infoPtr->savedObjCmdProc = cmdPtr->objProc; infoPtr->savedNreProc = cmdPtr->nreProc; infoPtr->savedObjCmdClientData = cmdPtr->objClientData; infoPtr->evalLevel = evalLevel; /* * Force our routines to be called. */ cmdPtr->proc = ProfStrCommandEval; cmdPtr->clientData = (ClientData) infoPtr; cmdPtr->objProc = ProfObjCommandEval; if (cmdPtr->nreProc != NULL) { cmdPtr->nreProc = ProfNreCommandEval; } cmdPtr->objClientData = (ClientData) infoPtr; return TCL_OK; } #else /*----------------------------------------------------------------------------- * ProfTraceRoutine -- * Routine called by Tcl_Eval to do profiling. It intercepts the current |
︙ | ︙ | |||
1146 1147 1148 1149 1150 1151 1152 | infoPtr->savedStrCmdProc = NULL; infoPtr->savedStrCmdClientData = NULL; infoPtr->savedObjCmdProc = NULL; #ifdef OBJ_AND_NRE infoPtr->savedNreProc = NULL; #endif infoPtr->savedObjCmdClientData = NULL; | < < < < | 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 | infoPtr->savedStrCmdProc = NULL; infoPtr->savedStrCmdClientData = NULL; infoPtr->savedObjCmdProc = NULL; #ifdef OBJ_AND_NRE infoPtr->savedNreProc = NULL; #endif infoPtr->savedObjCmdClientData = NULL; infoPtr->evalLevel = UNKNOWN_LEVEL; infoPtr->realTime = 0; infoPtr->cpuTime = 0; infoPtr->prevRealTime = 0; infoPtr->prevCpuTime = 0; infoPtr->updatedTimes = FALSE; infoPtr->stackPtr = NULL; |
︙ | ︙ |