Hi All,

I've just upgrade from Pharo 60395 to 60411 and am now unable to
inspect instances of Matrix.

I think I read somewhere that the GTInspector is now using fast tables,
and am guessing that it is this change that is causing the problem.

I've included code below to reproduce the problem and a stack trace.
The sample code creates a 3 x 3 matrix.

FTTableContainerMorph>>updateExposedRows suggests that the matrix is
being treated as a one-dimensional collection:

self owner numberOfRows  => 9 "expected 3"
self owner numberOfColumns  => 1 "expected 3"

I'll keep investigating, but if someone more familiar can point me in
the right direction, any hints will be appreciated.

Thanks,
Alistair

Pharo 6.0
Latest update: #60411
OS: 4.9.8-1-ARCH



| m |

m := Matrix rows: 3 columns: 3.
1 to: 3 do: [ :i |
1 to: 3 do: [ :j |
m at: i at: j put: 'C', i printString, j printString ] ].
m inspect



Matrix(Object)>>error:
Matrix(Object)>>errorNotIndexable
Matrix(Object)>>at:
GLMFastListDataSource(FTSimpleDataSource)>>elementAt:
GLMFastListDataSource>>cellColumn:row:
FTTableContainerMorph>>updateExposedRows
FTTableMorph>>resetPosition
FTTableMorph>>resizeAllSubviews
FTTableMorph>>extent:
FTTableMorph(Morph)>>bounds:
FTTableMorph(Morph)>>layoutInBounds:
FTTableMorph(Morph)>>layoutProportionallyIn:
[ :m | m layoutProportionallyIn: newBounds ] in
ProportionalLayout>>layout:in: in Block: [ :m | m
layoutProportionallyIn: newBounds ]
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphsDo:
ProportionalLayout>>layout:in:
GLMPanelMorph(Morph)>>doLayoutIn:
[ self doLayoutIn: self layoutBounds ] in
GLMPanelMorph(Morph)>>computeFullBounds in Block: [ self doLayoutIn:
self layoutBounds ]
BlockClosure>>on:do:
GLMPanelMorph(Morph)>>computeFullBounds
GLMPanelMorph(Morph)>>fullBounds
[ :m |
| subBox |
m visible
ifTrue: [ subBox := m fullBounds.
box
ifNil: [ box := subBox copy ]
ifNotNil: [ box := box quickMerge: subBox ] ] ] in
GLMPanelMorph(Morph)>>submorphBounds in Block: [ :m | ...
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphBounds
GLMPanelMorph(Morph)>>privateFullBounds
GLMPanelMorph(Morph)>>doLayoutIn:
[ self doLayoutIn: self layoutBounds ] in
GLMPanelMorph(Morph)>>computeFullBounds in Block: [ self doLayoutIn:
self layoutBounds ]
BlockClosure>>on:do:
GLMPanelMorph(Morph)>>computeFullBounds
GLMPanelMorph(Morph)>>fullBounds

Reply via email to