Tcl Source Code

View Ticket
Login
Ticket UUID: 497459
Title: document ckalloc/ckfree
Type: Bug Version: obsolete: 8.4a4
Submitter: dgp Created on: 2001-12-28 23:48:56
Subsystem: 41. Memory Allocation Assigned To: hobbs
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2002-02-26 09:23:56
Resolution: Fixed Closed By: hobbs
    Closed on: 2002-02-26 02:23:56
Description:
There are a few places in Tcl's documentation where
the routines ckalloc() and ckfree() are mentioned.
However, these synonyms for Tcl_Alloc() and
Tcl_Free() are not themselves documented anywhere.

I propose to document them in the Tcl_Alloc man
page as deprecated synonyms [*], then to update all
references from ckalloc -> Tcl_Alloc and
ckfree -> Tcl_Free.

Patch coming soon.

[*] following the example of panic() and Tcl_Panic().
User Comments: hobbs added on 2002-02-26 09:23:56:
Logged In: YES 
user_id=72656

I patched all but the following files, as I felt the other 
changes were really not necessary for the average user (and 
potentially confusing).  Just knowing about Tcl_Alloc is 
good for 99.5% of users.

+* doc/Concat.3:
+* doc/CrtMathFnc.3:
+* doc/Hash.3:
+* doc/Interp.3:
+* doc/SetResult.3:
+* doc/SplitList.3:
+* doc/SplitPath.3:

dgp added on 2002-01-05 00:47:07:

File Added - 15482: alloc.patch

dgp added on 2002-01-05 00:47:06:
Logged In: YES 
user_id=80530

Here's a patch that updates to documentation to
cover ckalloc, ckfree, etc.

dgp added on 2002-01-04 22:27:14:
Logged In: YES 
user_id=80530

Never mind on that last point.  ckalloc(), ckfree(), etc.
are always macros -- whether or not things are stub-enabled.
ckalloc() resolves to Tcl_Alloc or Tcl_DbCkalloc and both
of those are in the stub table.

dgp added on 2002-01-04 22:21:02:
Logged In: YES 
user_id=80530

Note that ckalloc() and ckfree() are not in 
Tcl's public stub table.

It appears one must choose between supporting stubs
and supporting memory debugging in their extension.
Is that right?  Is that as it should be?

dgp added on 2001-12-29 07:14:22:
Logged In: YES 
user_id=80530

Deprecation might not be the right idea after all.
Using ckalloc() instead of Tcl_Alloc() appears to be the
only way to get __FILE__ and __LINE__ data into the
memory reports produced when TCL_MEM_DEBUG is enabled.

All the more reason to get them documented I guess...

Attachments: