Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#721 having a type requires having a dup proc

obsolete: 8.0.3
closed-fixed
nobody
2
2001-04-16
2000-10-26
Anonymous
No

OriginalBugID: 1395 Bug
Version: 8.0.3
SubmitDate: '1999-03-02'
LastModified: '1999-08-07'
Severity: MED
Status: Released
Submitter: pat
ChangedBy: hobbs
OS: Other
OSVersion: FreeBSD 3.0 current
Machine: NA
FixedDate: '1999-08-07'
FixedInVersion: 8.2
ClosedDate: '2000-10-25'

Name:

Mikhail Teterin

CustomShell:

plus patches

ReproducibleScript:

Tcl_ObjType someType = {

"some",

NULL, /* nothing special to do to free */

NULL, /* nothing special to do when duping */

some_updateStringProc,

some_setFromAnyProc

}

ObservedBehavior:

Sooner or later Tcl_DuplicateObj will be called upon an object of this

type. It will find a non-NULL typePtr and will call typePtr->

without checking the typePtr->dupIntRepProc itself.

DesiredBehavior:

Why not allow dupIntRepProc to be NULL just like freeIntRepProc is

allowed to be?

Patch:

*** tclObj.c Tue Nov 17 17:40:39 1998

--- tclObj.c.improved Thu Jan 14 11:26:07 1999

***************

*** 689,695 ****

dupPtr->length = len;

}

! if (typePtr != NULL) {

typePtr->dupIntRepProc(objPtr, dupPtr);

}

return dupPtr;

--- 689,695 ----

dupPtr->length = len;

}

! if (typePtr && typePtr->dupIntRepProc) {

typePtr->dupIntRepProc(objPtr, dupPtr);

}

return dupPtr;

PatchFiles:

tclObj.c

This has been fixed as of or before 8.2.
-- 08/07/1999 hobbs

Discussion

  • Brent B. Welch
    Brent B. Welch
    2000-10-26

    • priority: 5 --> 2
    • status: open --> closed-fixed
     
  • Don Porter
    Don Porter
    2001-04-16

    • labels: 104246 --> 10. Objects