emer / etable

Data table structure in Go, now developed at https://github.com/cogentcore/core/tree/main/tensor
BSD 3-Clause "New" or "Revised" License
117 stars 9 forks source link

TableView UpdateTable() with new table length is crashing #40

Open rcoreilly opened 2 years ago

rcoreilly commented 2 years ago

when updated in a non-visible tab, then you click on the tab, and scroll. CCN sims/ch10/a_not_b

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x218 pc=0x4653548]

goroutine 10 [running]:
github.com/goki/gi/gi.(*Layout).Layout2DChildren(0xc0002e2680, 0x400d3dd)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:523 +0x1a8
github.com/goki/gi/gi.(*Layout).Layout2D(0xc0002e2680, {{0xc0002e2680, 0x16d}, {0xc0055a8c60, 0x54f1f20}}, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:1203 +0x1c8
github.com/goki/gi/gi.(*Layout).Layout2DChildren(0xc0002e2100, 0x1)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:523 +0x1d0
github.com/goki/gi/gi.(*Layout).Layout2D(0xc0002e2100, {{0xc0002e2100, 0xc0002e1600}, {0x4ed2089, 0xc0004d7800}}, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:1203 +0x1c8
github.com/goki/gi/gi.(*Layout).Layout2DChildren(0xc0002e1600, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:523 +0x1d0
github.com/goki/gi/gi.(*Layout).Layout2D(0xc0002e1600, {{0xc0002e1600, 0x400d31d}, {0xc0055a8eb0, 0x54f1f20}}, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:1203 +0x1c8
github.com/goki/gi/gi.(*Layout).Layout2DChildren(0xc0004d7800, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:523 +0x1d0
github.com/goki/gi/gi.(*Layout).Layout2D(0xc0004d7800, {{0x4ed1fc9, 0xc0004d7800}, {0xc0055a9028, 0x4663443}}, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:1203 +0x1c8
github.com/emer/etable/etview.(*TableView).Layout2D(0xc0004d7800, {{0xc0004d7800, 0xc000295700}, {0x472ba09, 0xc000592600}}, 0xc0055a9098)
    /Users/oreilly/go/src/github.com/emer/etable/etview/tableview.go:1000 +0x3d
github.com/goki/gi/gi.(*Layout).Layout2DChildren(0xc000295700, 0x1)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:518 +0x14e
github.com/goki/gi/gi.(*Layout).Layout2D(0xc000295700, {{0xc0055a9170, 0x400d31d}, {0x51929c0, 0x51e2cc0}}, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/layout.go:1203 +0x1c8
github.com/goki/gi/gi.(*Node2DBase).Layout2DTree(0xc000295700)
    /Users/oreilly/go/src/github.com/goki/gi/gi/node2d.go:844 +0x19f
github.com/goki/gi/gi.(*WidgetBase).ReRender2DTree(0xc000295700)
    /Users/oreilly/go/src/github.com/goki/gi/gi/widget.go:528 +0x1ce
github.com/goki/gi/gi.(*Viewport2D).ReRender2DAnchor(0xc00035ea80, {0x54f1f20, 0xc000295700})
    /Users/oreilly/go/src/github.com/goki/gi/gi/viewport.go:406 +0x185
github.com/goki/gi/gi.(*Viewport2D).UpdateNodes(0xc00035ea80)
    /Users/oreilly/go/src/github.com/goki/gi/gi/viewport.go:855 +0x388
github.com/goki/gi/gi.(*Viewport2D).NodeUpdated(0xc00035ea80, {0x54f1f20, 0xc0002e2680}, 0x0, {0x50224c0, 0xc0082920a8})
    /Users/oreilly/go/src/github.com/goki/gi/gi/viewport.go:752 +0x1a8
github.com/goki/gi/gi.SignalViewport2D({0x54cf4e8, 0xc00035ea80}, {0x54cb3a8, 0xc0002e2680}, 0x0, {0x50224c0, 0xc0082920a8})
    /Users/oreilly/go/src/github.com/goki/gi/gi/viewport.go:706 +0x2b4
github.com/goki/ki/ki.(*Signal).Emit(0xc0002e26c8, {0x54cb3a8, 0xc0002e2680}, 0x0, {0x50224c0, 0xc0082920a8})
    /Users/oreilly/go/src/github.com/goki/ki/ki/signal.go:173 +0x1f9
github.com/goki/ki/ki.(*Node).UpdateEnd(0xc0002e2680, 0x40)
    /Users/oreilly/go/src/github.com/goki/ki/ki/node.go:1382 +0x1a5
github.com/emer/etable/etview.(*TableView).LayoutSliceGrid(0xc0004d7800)
    /Users/oreilly/go/src/github.com/emer/etable/etview/tableview.go:479 +0x4b1
github.com/goki/gi/giv.(*SliceViewBase).Render2D(0xc0004d7800)
    /Users/oreilly/go/src/github.com/goki/gi/giv/sliceviewbase.go:1016 +0x310
github.com/goki/gi/gi.(*Node2DBase).Render2DTree(0xc0004d7800)
    /Users/oreilly/go/src/github.com/goki/gi/gi/node2d.go:870 +0x67
github.com/goki/gi/gi.(*Viewport2D).ReRender2DNode(0xc00035ea80, {0x54f0a50, 0xc0004d7800})
    /Users/oreilly/go/src/github.com/goki/gi/gi/viewport.go:381 +0x185
github.com/goki/gi/giv.(*SliceViewBase).ConfigScroll.func1({0x54c9050, 0xc0004d7800}, {0xc0004d7800, 0x10}, 0xc000076d80, {0xc0080d0a60, 0x0})
    /Users/oreilly/go/src/github.com/goki/gi/giv/sliceviewbase.go:467 +0x130
github.com/goki/ki/ki.(*Signal).Emit(0xc000f7fb08, {0x54ccc20, 0xc000f7e000}, 0x418ba14, {0x5016700, 0xc0080d0a6c})
    /Users/oreilly/go/src/github.com/goki/ki/ki/signal.go:173 +0x1f9
github.com/goki/gi/gi.(*SliderBase).EmitNewValue(0xc000f7e000)
    /Users/oreilly/go/src/github.com/goki/gi/gi/sliders.go:255 +0x98
github.com/goki/gi/gi.(*SliderBase).SetSliderPos(0xc000f7e000, 0x426c0000)
    /Users/oreilly/go/src/github.com/goki/gi/gi/sliders.go:287 +0x2bd
github.com/goki/gi/gi.(*SliderBase).SliderMove(0xc000f7e000, 0x549ff90, 0x0)
    /Users/oreilly/go/src/github.com/goki/gi/gi/sliders.go:295 +0x31
github.com/goki/gi/giv.(*SliceViewBase).SliceViewBaseEvents.func1({0x54c9050, 0xc0004d7800}, {0xc0055a9d30, 0xc0080b42a0}, 0xc00819d200, {0x515c6e0, 0xc0077be640})
    /Users/oreilly/go/src/github.com/goki/gi/giv/sliceviewbase.go:2153 +0x125
github.com/goki/gi/gi.(*WinEventRecv).Call(0x5047d20, {0x54cfa58, 0xc0008dd000}, 0xc0008dd000, {0x515c6e0, 0xc0077be640})
    /Users/oreilly/go/src/github.com/goki/gi/gi/events.go:116 +0x139
github.com/goki/gi/gi.(*EventMgr).SendEventSignal(0xc0008dd188, {0x5494380, 0xc0077be640}, 0x1)
    /Users/oreilly/go/src/github.com/goki/gi/gi/events.go:225 +0x61c
github.com/goki/gi/gi.(*Window).ProcessEvent(0xc0008dd000, {0x5494380, 0xc0077be640})
    /Users/oreilly/go/src/github.com/goki/gi/gi/window.go:1576 +0x605
github.com/goki/gi/gi.(*Window).EventLoop(0xc0008dd000)
    /Users/oreilly/go/src/github.com/goki/gi/gi/window.go:1498 +0x33
github.com/goki/gi/gi.(*Window).StartEventLoop(0xc0008dd000)
    /Users/oreilly/go/src/github.com/goki/gi/gi/window.go:868 +0x50
main.mainrun()
    /Users/oreilly/go/src/github.com/CompCogNeuro/sims/ch10/a_not_b/a_not_b.go:951 +0x245
main.main.func1()
    /Users/oreilly/go/src/github.com/CompCogNeuro/sims/ch10/a_not_b/a_not_b.go:48 +0x17
github.com/goki/gi/gimain.Main.func1({0x0, 0x0})
    /Users/oreilly/go/src/github.com/goki/gi/gimain/gimain.go:31 +0x1b
github.com/goki/gi/oswin/driver/glos.Main.func1()
    /Users/oreilly/go/src/github.com/goki/gi/oswin/driver/glos/app.go:88 +0x2e
created by github.com/goki/gi/oswin/driver/glos.Main
    /Users/oreilly/go/src/github.com/goki/gi/oswin/driver/glos/app.go:87 +0x86

/Users/oreilly/go/src/github.com/CompCogNeuro/sims/ch10/a_not_b/a_not_b <b>failed</b> at: Sun Nov  21 22:27:09 PST 2021 with error: exit status 2
rcoreilly commented 2 years ago

doesn't happen when viewing tab, or after table has been updated once by viewing table without scrolling.