[squeak-dev] The Inbox: Collections-kks.798.mcz
K K Subbu
kksubbu.ml at gmail.com
Mon Jul 9 14:51:30 UTC 2018
Thanks for your insight, Dave. I will send a new patch with these changes.
Regards .. Subbu
On Saturday 07 July 2018 11:18 PM, David T. Lewis wrote:
> This seems like a good thing to do - add the logic in setString:setRunsChecking:
> to ensure that the RunArray size matches the actual string size.
>
> I think that the ifNil: check should go back in, because a nil RunArray is
> probably a common case, and the nil check is very fast.
>
> But that draws my eye to something else. Looking and the method history, this
> check has been in place since at least 1997:
>
> (aRunArray isKindOf: RunArray) ifFalse: [^ aString asText].
>
> This looks like some leftover check from early development, and I cannot
> imagine that there would be any need for it today. So maybe we can get rid
> of the isKindOf: and put the ifNil: check back in.
>
> Dave
>
>
> On Fri, Jul 06, 2018 at 09:50:22AM +0000, commits at source.squeak.org wrote:
>> A new version of Collections was added to project The Inbox:
>> http://source.squeak.org/inbox/Collections-kks.798.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Collections-kks.798
>> Author: kks
>> Time: 6 July 2018, 3:20:06.403752 pm
>> UUID: 151011b4-ef92-409b-9078-bdd1be01ce87
>> Ancestors: Collections-cmm.797
>>
>> Attempt to retain as much styling as possible while filing in text from streams where the runs may fall short or extend beyond the string.
>>
>> Based on Bob's suggestions at http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-July/199530.html
>>
>> =============== Diff against Collections-cmm.797 ===============
>>
>> Item was changed:
>> ----- Method: Text>>setString:setRunsChecking: (in category 'private') -----
>> setString: aString setRunsChecking: aRunArray
>> + | stringSize runsSize |
>> - "Check runs and do the best you can to make them fit..."
>> -
>> string := aString.
>> - "check the runs"
>> - aRunArray ifNil: [^ aString asText].
>> (aRunArray isKindOf: RunArray) ifFalse: [^ aString asText].
>> - aRunArray runs size = aRunArray values size ifFalse: [^ aString asText].
>> - aRunArray size = aString size ifFalse: [^ aString asText].
>>
>> + "Check runs and do the best you can to make them fit..."
>> + runsSize := aRunArray runs size.
>> + runsSize = aRunArray values size ifFalse: [^ aString asText]. "raise error here?"
>> + stringSize := string size.
>> + runs := stringSize = runsSize
>> + ifTrue: [aRunArray]
>> + ifFalse: [ stringSize > runsSize
>> + ifTrue: [aRunArray addLast: {} times: stringSize - runsSize]
>> + ifFalse: [aRunArray copyFrom: 1 to: stringSize]].!
>> - runs := aRunArray.!
>>
>>
>
More information about the Squeak-dev
mailing list
|