Tcl Source Code

Artifact [b43674f7e7]
Login

Artifact b43674f7e7c11e69c63ddc8e1b41e27562e833ea:

Ticket change [b43674f7e7] - Closed ticket [3598590fff]: UpdateStringOfList should use TclConvertElement length plus 6 other changes by dkf 2013-11-12 12:39:32.
D 2013-11-12T12:39:32.403
J closedate 2456609.02745837
J closer dkf
J comment tclListObj.c:UpdateStringOfList\s(which\sis\swhat\sI'm\scloning\sfor\san\sextension),\sloops\sTclScanElement\sto\sestimate\ssize\sof\sbuffer.\sIt\sthen\ssets\sTcl_Obj.length\sas\sthis\sestimate.\sAs\sper\ssource\scomments\sfor\sTclScanElement\sthis\snumber\sis\sa\s*over*estimate\sand\sit\sis\sthe\slengths\sreturned\sfrom\sTclConverElement\sthat\sshould\sbe\sused.\sThe\sonly\sway\sit\sworks\sas\sis\sif\sTclScanElement\salways\sreturns\sa\sexact\scount,\snever\san\sover\sestimate\sI\scan't\sactually\sget\sit\sto\sreturn\san\soverestimate\s(yet)\sEither\sTclScanElement\sdocs\sare\swrong\sor\sthe\scode\sneeds\sto\sbe\sfixed\sto\suse\sthe\slengths\sreturned\sby\sTclConvertElement\sYes,\shighly\sunlikely\sUSOL\sdoes\snot\swork!\sBut\sI\sthink\sit\sis\smore\slikely\sthe\sestimate\sis\sprecise\sthan\sthe\soverallocation\sbeing\sharmless\selse\syou\swould\sget\strailing\sgarbage\sin\ssome\scases,\sI\sthink\s(both\sthe\slength\sfield\sand\sthe\sterminating\snull\spoint\sto\sthe\send\sof\sallocated\sspace)\sOther\spossibility\sis\sthat\sthe\soverestimate\sis\ssome\sreally\sarcane\scase\sthat\sis\snot\sin\sthe\stests\sand\swill\srarely\s(never?)\soccur\sin\sreal\slife\sIt\sappears\sas\sthough\sthe\sextra\sspace\shappens\s(afaict)\sonly\swhen\sthe\sCONVERT_ANY\sflag\sis\spassed\sin\sto\sTclScanElement.\s\r\n\r\nSince\sUpdateStringOfList\sdoes\snot\spass\sthis\sflag,\sit\sappears\sto\sbe\ssafe.\s\sHowever,\sto\skeep\sto\sthe\sdocumented\sTclScanElement\sinterface\sand\sguard\sagainst\sfuture\schanges,\sI\sthink\sit\sshould\suse\sthe\slengths\sreturned\sby\sTclConvertElement\sinstead.
J login dkf
J mimetype text/plain
J severity Minor
J status Closed
K 3598590fffffffffffffffffffffffffffffffff
U dkf
Z 0da0f8af4e75a83e877d6c1373f659c2