[squeak-dev] The Inbox: Morphic-ct.1639.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Mar 20 19:50:07 UTC 2020

Christoph Thiede uploaded a new version of Morphic to project The Inbox:

==================== Summary ====================

Name: Morphic-ct.1639
Author: ct
Time: 20 March 2020, 8:49:59.689237 pm
UUID: 068f59a1-989d-b244-ad1f-84e726dcf055
Ancestors: Morphic-eem.1638

Extracts lazy accessor in LazyListMorph

This does not only follow SRP but also makes it easier for other objects to access listItems properly. Pheno uses this, for example [1].

[1] https://github.com/tom95/Pheno/commit/ab39c5b72c1764e9d525e287f3efff99917b38e2#diff-bf98bbb5fedbbc4b66a4b825d3c8d14b

=============== Diff against Morphic-eem.1638 ===============

Item was changed:
  ----- Method: LazyListMorph>>item: (in category 'list access - cached') -----
  item: index
  	"Do inst-var access on listItems here to initialize it as late as possible."
+ 	^ (self listItems at: index) ifNil: [
- 	listItems ifNil: [listItems := Array new: self getListSize].
- 	^ (listItems at: index) ifNil: [
  		| newItem itemWidth |	
  		newItem := self getListItem: index.
  		"Update the width cache."
  		maxWidth ifNotNil: [
  			itemWidth := self widthToDisplayItem: newItem.
  			itemWidth > maxWidth ifTrue: [
  				maxWidth := itemWidth.
  				super layoutChanged]].
  		listItems at: index put: newItem.

Item was added:
+ ----- Method: LazyListMorph>>listItems (in category 'accessing') -----
+ listItems
+ 	^ listItems ifNil: [listItems := Array new: self getListSize]!

More information about the Squeak-dev mailing list