1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/*
* tclTrace.c --
*
* This file contains code to handle most trace management.
*
* Copyright (c) 1987-1993 The Regents of the University of California.
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
* Copyright (c) 1998-2000 Scriptics Corporation.
* Copyright (c) 2002 ActiveState Corporation.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclTrace.c,v 1.2.2.19 2007/04/08 14:59:12 dgp Exp $
*/
#include "tclInt.h"
/*
* Structures used to hold information about variable traces:
*/
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/*
* tclTrace.c --
*
* This file contains code to handle most trace management.
*
* Copyright (c) 1987-1993 The Regents of the University of California.
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
* Copyright (c) 1998-2000 Scriptics Corporation.
* Copyright (c) 2002 ActiveState Corporation.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclTrace.c,v 1.2.2.20 2007/04/10 16:27:35 dgp Exp $
*/
#include "tclInt.h"
/*
* Structures used to hold information about variable traces:
*/
|
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
|
*/
done:
if (code == TCL_ERROR) {
if (leaveErrMsg) {
CONST char *type = "";
Tcl_Obj *options = Tcl_GetReturnOptions((Tcl_Interp *)iPtr, code);
Tcl_Obj *errorInfoKey = Tcl_NewStringObj("-errorinfo", -1);
Tcl_Obj *errorInfo;
Tcl_IncrRefCount(errorInfoKey);
Tcl_DictObjGet(NULL, options, errorInfoKey, &errorInfo);
Tcl_IncrRefCount(errorInfo);
Tcl_DictObjRemove(NULL, options, errorInfoKey);
if (Tcl_IsShared(errorInfo)) {
Tcl_DecrRefCount(errorInfo);
errorInfo = Tcl_DuplicateObj(errorInfo);
|
<
|
>
|
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
|
*/
done:
if (code == TCL_ERROR) {
if (leaveErrMsg) {
CONST char *type = "";
Tcl_Obj *options = Tcl_GetReturnOptions((Tcl_Interp *)iPtr, code);
Tcl_Obj *errorInfoKey, *errorInfo;
TclNewLiteralStringObj(errorInfoKey, "-errorinfo");
Tcl_IncrRefCount(errorInfoKey);
Tcl_DictObjGet(NULL, options, errorInfoKey, &errorInfo);
Tcl_IncrRefCount(errorInfo);
Tcl_DictObjRemove(NULL, options, errorInfoKey);
if (Tcl_IsShared(errorInfo)) {
Tcl_DecrRefCount(errorInfo);
errorInfo = Tcl_DuplicateObj(errorInfo);
|