cogentcore / core

A free and open source framework for building powerful, fast, and elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the Web with a single pure Go codebase, allowing you to Code Once, Run Everywhere.
http://cogentcore.org/core
BSD 3-Clause "New" or "Revised" License
1.31k stars 71 forks source link

views example : panic: reflect: call of reflect.Value.IsZero on zero Value after clicking "2 table structs" button #916

Closed c1ngular closed 4 months ago

c1ngular commented 4 months ago

Describe the bug

panic raise in console and app freeze after after clicking "2 table structs" button from views example

截屏2024-02-28 15 48 53

How to reproduce

`2024/02/28 15:48:37 panic: reflect: call of reflect.Value.IsZero on zero Value 2024/02/28 15:48:37 2024/02/28 15:48:37 ----- START OF STACK TRACE: ----- 2024/02/28 15:48:37 goroutine 13 [running]: runtime/debug.Stack() /usr/local/go/src/runtime/debug/stack.go:24 +0x64 cogentcore.org/core/goosi.HandleRecoverBase({0x1010fc080, 0x1400009c720}) /Users/lijiangtv/go/src/core/goosi/recover.go:49 +0x38 cogentcore.org/core/gi.HandleRecover({0x1010fc080, 0x1400009c720}) /Users/lijiangtv/go/src/core/gi/recover.go:32 +0x48 cogentcore.org/core/gi.(RenderWin).EventLoop.func1() /Users/lijiangtv/go/src/core/gi/renderwin.go:555 +0x34 panic({0x1010fc080?, 0x1400009c720?}) /usr/local/go/src/runtime/panic.go:914 +0x218 reflect.Value.IsZero({0x0?, 0x0?, 0x14009e42780?}) /usr/local/go/src/reflect/value.go:1638 +0x524 cogentcore.org/core/laser.OnePtrUnderlyingValue({0x1010a8860?, 0x14000349cd0?, 0x14004d131d0?}) /Users/lijiangtv/go/src/core/laser/ptrs.go:102 +0x4c cogentcore.org/core/giv.(TableView).ConfigRows(0x14009f00000) /Users/lijiangtv/go/src/core/giv/tableview.go:357 +0x344 cogentcore.org/core/giv.(TableView).ConfigTableView(0x14009f00000) /Users/lijiangtv/go/src/core/giv/tableview.go:238 +0xe8 cogentcore.org/core/giv.(TableView).ConfigWidget(0x14009f00000?) /Users/lijiangtv/go/src/core/giv/tableview.go:227 +0x1c cogentcore.org/core/gi.(WidgetBase).Config(0x14009f00000) /Users/lijiangtv/go/src/core/gi/render.go:277 +0x60 cogentcore.org/core/gi.(WidgetBase).Update.func1({0x101228320, 0x14009f00000}, 0x101044710?) /Users/lijiangtv/go/src/core/gi/render.go:337 +0x2c cogentcore.org/core/gi.(WidgetBase).Update.(WidgetBase).WidgetWalkPre.func2({0x101215d18?, 0x14009f00000?}) /Users/lijiangtv/go/src/core/gi/widget.go:535 +0xb8 cogentcore.org/core/ki.(Node).WalkPre(0x14009f00000, 0x14005079be0) /Users/lijiangtv/go/src/core/ki/node.go:885 +0x158 cogentcore.org/core/gi.(WidgetBase).WidgetWalkPre(...) /Users/lijiangtv/go/src/core/gi/widget.go:530 cogentcore.org/core/gi.(WidgetBase).Update(0x14009f00000) /Users/lijiangtv/go/src/core/gi/render.go:336 +0x1d4 cogentcore.org/core/giv.(TableView).SetSlice(0x14009f00000, {0x1010b5c40?, 0x1400026bdf0}) /Users/lijiangtv/go/src/core/giv/tableview.go:168 +0x490 cogentcore.org/core/giv.(SliceValue).ConfigDialog(0x14000200200, 0x14009e72000) /Users/lijiangtv/go/src/core/giv/values.go:532 +0x368 cogentcore.org/core/giv.OpenValueDialog({0x10120f1d8, 0x14000200200}, {0x101225da0, 0x14004a8a000}, 0x0, {0x0, 0x0, 0x0?}) /Users/lijiangtv/go/src/core/giv/value.go:971 +0xf4 cogentcore.org/core/giv.(SliceValue).OpenDialog(0x101?, {0x101225da0?, 0x14004a8a000?}, 0x100630e0c?) /Users/lijiangtv/go/src/core/giv/values.go:519 +0x48 cogentcore.org/core/giv.ConfigDialogWidget.func1({0x1012119b8, 0x14009e6c9a0}) /Users/lijiangtv/go/src/core/giv/value.go:947 +0x134 cogentcore.org/core/events.(Listeners).Call(0x14004a8a870, {0x1012119b8, 0x14009e6c9a0}, {0x14004d139d0, 0x1, 0x100000000?}) /Users/lijiangtv/go/src/core/events/listeners.go:52 +0x104 cogentcore.org/core/gi.(WidgetBase).HandleEvent(0x14004a8a000, {0x1012119b8?, 0x14009e6c9a0}) /Users/lijiangtv/go/src/core/gi/events.go:254 +0x1d0 cogentcore.org/core/gi.(WidgetBase).Send(0x14004a8a000, 0x5, {0x1400504ae20, 0x1, 0x14004d13a01?}) /Users/lijiangtv/go/src/core/gi/events.go:190 +0x114 cogentcore.org/core/gi.(EventMgr).HandlePosEvent(0x1400023bb48, {0x101211738, 0x14009db4d20}) /Users/lijiangtv/go/src/core/gi/eventmgr.go:431 +0x1754 cogentcore.org/core/gi.(EventMgr).HandleEvent(0x1400028c690?, {0x101211738, 0x14009db4d20}) /Users/lijiangtv/go/src/core/gi/eventmgr.go:159 +0x58 cogentcore.org/core/gi.(Stage).MainHandleEvent(0x140003778c0, {0x101211738?, 0x14009db4d20}) /Users/lijiangtv/go/src/core/gi/mainstage.go:350 +0x148 cogentcore.org/core/gi.(StageMgr).MainHandleEvent(0x14004cfac68, {0x101211738, 0x14009db4d20}) /Users/lijiangtv/go/src/core/gi/mainstage.go:358 +0x78 cogentcore.org/core/gi.(RenderWin).HandleEvent(0x14004cfac30, {0x101211738?, 0x14009db4d20}) /Users/lijiangtv/go/src/core/gi/renderwin.go:608 +0x1c8 cogentcore.org/core/gi.(RenderWin).EventLoop(0x14004cfac30) /Users/lijiangtv/go/src/core/gi/renderwin.go:569 +0x108 created by cogentcore.org/core/gi.(RenderWin).GoStartEventLoop in goroutine 1 /Users/lijiangtv/go/src/core/gi/renderwin.go:523 +0xa4

2024/02/28 15:48:37 ----- END OF STACK TRACE ----- 2024/02/28 15:48:37 SAVED CRASH LOG TO /Users/lijiangtv/Library/Cogent Core Views Demo/crash-logs/crash_2024-02-28_15-48-37 `

Example code

No response

Relevant output

No response

Platform

macOS

kkoreilly commented 4 months ago

I am looking into this.