File: itcl_fix.diff

package info (click to toggle)
tkdesk 2.0-12
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 6,596 kB
  • sloc: tcl: 20,764; ansic: 16,262; sh: 359; makefile: 233
file content (56 lines) | stat: -rw-r--r-- 1,909 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
*** /usr/tmp/TclTk/itcl3.0.1/itcl/generic/itcl_ensemble.c.orig	Sun Jun  6 17:09:21 1999
--- /usr/tmp/TclTk/itcl3.0.1/itcl/generic/itcl_ensemble.c	Mon Oct 25 22:01:41 1999
***************
*** 1626,1632 ****
       *  another "ensemble" command.  Use the current ensemble as
       *  the parent, and find or create an ensemble part within it.
       */
!     ensName = TclGetStringFromObj(objv[1], (int*)NULL);
  
      if (ensData) {
          if (FindEnsemblePart(interp, ensData, ensName, &ensPart) != TCL_OK) {
--- 1626,1632 ----
       *  another "ensemble" command.  Use the current ensemble as
       *  the parent, and find or create an ensemble part within it.
       */
!     ensName = Tcl_GetStringFromObj(objv[1], (int*)NULL);
  
      if (ensData) {
          if (FindEnsemblePart(interp, ensData, ensName, &ensPart) != TCL_OK) {
***************
*** 1693,1698 ****
--- 1693,1699 ----
      }
      else if (objc > 3) {
          objPtr = Tcl_NewListObj(objc-2, objv+2);
+         Tcl_IncrRefCount(objPtr);  /* stop Eval trashing it */
          status = Tcl_EvalObj(ensInfo->parser, objPtr);
          Tcl_DecrRefCount(objPtr);  /* we're done with the object */
      }
***************
*** 2103,2108 ****
--- 2104,2110 ----
  
      if (prevArgObj) {
          objPtr = Tcl_DuplicateObj(prevArgObj);
+         Tcl_IncrRefCount(objPtr);
          copyPtr->internalRep.twoPtrValue.ptr2 = (VOID *) objPtr;
      }
  }
***************
*** 2154,2160 ****
       *  keep the string around as if it were the command line
       *  invocation.
       */
!     argObj = Tcl_NewStringObj(name, -1);
  
      /*
       *  Free the old representation and install a new one.
--- 2156,2162 ----
       *  keep the string around as if it were the command line
       *  invocation.
       */
!     argObj = Tcl_NewStringObj(name, length);
  
      /*
       *  Free the old representation and install a new one.