From: SourceForge.net <no...@so...> - 2012-07-02 19:31:40
|
Bugs item #3046359, was opened at 2010-08-16 07:48 Message generated for change (Settings changed) made by dgp You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3046359&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 37. File System Group: obsolete: 8.6b1.1 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Don Porter (dgp) >Assigned to: Don Porter (dgp) Summary: Tcl_FSNewNativePath() can destroy intrep Initial Comment: Tcl_FSNewNativePath() makes a call to the Tcl_Filesystem's Tcl_FSInternalToNormalizedProc. It demands of that driver routine the creation of a pathObj with string rep (literal or to be created on demand) of a normalized path name. The driver doesn't have to do anything more than that. However, if the driver does do more than that, caching in the intrep whatever that filesystem finds useful to keep about its path values, Tcl_FSNewNativePath() assertively throws all that away, and constructs a completely new internal rep for the pathObj. This doesn't harm the overall function. The normalized name is preserved, and at least the claiming filesystem cache is maintained too, so future operations on the path value will be correct. However, it does indicate that for some drivers work will be done only to be undone, and that's a strange thing for a routine which is documented as "efficient" to be doing. I think it would be an improvement if T_FSNNP() only did its own intrep construction if the value is not already of the "path" Tcl_ObjType. If it finds the driver has already set the value to the "path" Tcl_ObjType, I think the filesystem core ought to trust the driver to have set its own intrep as it best sees fit. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3046359&group_id=10894 |