Index: generic/nsfProfile.c =================================================================== diff -u -r8eddf67371ec031084a6ef98fdec21e38dff85ff -r821c01bd241c51be4fa0931d423d8f8658606ee1 --- generic/nsfProfile.c (.../nsfProfile.c) (revision 8eddf67371ec031084a6ef98fdec21e38dff85ff) +++ generic/nsfProfile.c (.../nsfProfile.c) (revision 821c01bd241c51be4fa0931d423d8f8658606ee1) @@ -61,15 +61,14 @@ profile->overallTime += totalMicroSec; - if (obj->teardown == 0 || !obj->id || obj->destroyCalled) + if (obj->teardown == 0 || !obj->id || obj->destroyCalled) { return; + } + Tcl_DStringInit(&objectKey); + Tcl_DStringAppend(&objectKey, ObjStr(obj->cmdName), -1); - ALLOC_DSTRING(&objectKey, ObjStr(obj->cmdName)); - - if (cl) - ALLOC_DSTRING(&methodKey, ObjStr(cl->object.cmdName)); - else - ALLOC_DSTRING(&methodKey, ObjStr(obj->cmdName)); + Tcl_DStringInit(&methodKey); + Tcl_DStringAppend(&methodKey, cl ? ObjStr(cl->object.cmdName) : ObjStr(obj->cmdName), -1); Tcl_DStringAppend(&methodKey, "->", 2); Tcl_DStringAppend(&methodKey, methodName, -1); if (cl) @@ -79,8 +78,8 @@ NsfProfileFillTable(&profile->objectData, &objectKey, totalMicroSec); NsfProfileFillTable(&profile->methodData, &methodKey, totalMicroSec); - DSTRING_FREE(&objectKey); - DSTRING_FREE(&methodKey); + Tcl_DStringFree(&objectKey); + Tcl_StringFree(&methodKey); } void