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

Crash in gradient parse #902

Closed rcoreilly closed 4 months ago

rcoreilly commented 4 months ago

Describe the bug

see crash

How to reproduce

not sure what caused it

Example code

No response

Relevant output

Crash log saved in /Users/oreilly/Library/CogentCode/crash-logs

Platform: MacOS
System platform: MacOS
App version: dev
Core version: dev
Time: 2024-02-19 17:30:11

panic: runtime error: invalid memory address or nil pointer dereference

goroutine 291 [running]:
runtime/debug.Stack()
    /opt/homebrew/Cellar/go/1.21.4/libexec/src/runtime/debug/stack.go:24 +0x64
cogentcore.org/core/gi.HandleRecover({0x10245e900, 0x10301b410})
    /Users/oreilly/go/src/cogentcore.org/core/gi/recover.go:37 +0x74
cogentcore.org/core/gi.(*RenderWin).EventLoop.func1()
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:555 +0x34
panic({0x10245e900?, 0x10301b410?})
    /opt/homebrew/Cellar/go/1.21.4/libexec/src/runtime/panic.go:914 +0x218
cogentcore.org/core/colors/gradient.FromString({0x1402a1ea5fa, 0x3}, {0x1402501e848?, 0x100210470?, 0x1402501e828?})
    /Users/oreilly/go/src/cogentcore.org/core/colors/gradient/parse.go:75 +0x778
cogentcore.org/core/colors/gradient.FromAny({0x1023e87a0?, 0x1400d12ad90}, {0x1402501e848, 0x1, 0x1})
    /Users/oreilly/go/src/cogentcore.org/core/colors/gradient/parse.go:131 +0x11c
cogentcore.org/core/styles.glob..func52({0x1024f4a60?, 0x140180f0300}, {0x1402a1ea5f4?, 0x5?}, {0x1023e87a0, 0x1400d12ad90}, {0x1024f4a60?, 0x0?}, {0x0, 0x0})
    /Users/oreilly/go/src/cogentcore.org/core/styles/style_props.go:417 +0x19c
cogentcore.org/core/styles.(*FontRender).StyleRenderFromProps(0x0?, 0x14018096e60?, 0x78?, {0x0, 0x0})
    /Users/oreilly/go/src/cogentcore.org/core/styles/font.go:495 +0x108
cogentcore.org/core/styles.(*FontRender).SetStyleProps(0x140180f0300, 0x0, 0x1402501ef88?, {0x0, 0x0})
    /Users/oreilly/go/src/cogentcore.org/core/styles/font.go:483 +0x5c
cogentcore.org/core/paint.(*Text).SetHTMLPre(0x14020335170, {0x1401593ba00, 0x80, 0x80}, 0x140180f0280, 0x0?, 0x43100000547?, 0x0)
    /Users/oreilly/go/src/cogentcore.org/core/paint/text.go:754 +0xb98
cogentcore.org/core/texteditor.(*Editor).LayoutAllLines(0x14005acdb00)
    /Users/oreilly/go/src/cogentcore.org/core/texteditor/layout.go:117 +0x3e4
cogentcore.org/core/texteditor.(*Editor).RenderLayout(0x14005acdb00)
    /Users/oreilly/go/src/cogentcore.org/core/texteditor/render.go:37 +0x38
cogentcore.org/core/texteditor.(*Editor).Render(0x14005acdb00)
    /Users/oreilly/go/src/cogentcore.org/core/texteditor/render.go:49 +0x80
cogentcore.org/core/gi.(*WidgetBase).DoNeedsRender.func1({0x10261be70, 0x14005acdb00}, 0x10232f428?)
    /Users/oreilly/go/src/cogentcore.org/core/gi/render.go:413 +0xf4
cogentcore.org/core/gi.(*WidgetBase).DoNeedsRender.(*WidgetBase).WidgetWalkPre.func2({0x102607f28?, 0x14005acdb00?})
    /Users/oreilly/go/src/cogentcore.org/core/gi/widget.go:545 +0xb8
cogentcore.org/core/ki.(*Node).WalkPre(0x14005a22000, 0x1400d12a990)
    /Users/oreilly/go/src/cogentcore.org/core/ki/node.go:885 +0x158
cogentcore.org/core/gi.(*WidgetBase).WidgetWalkPre(...)
    /Users/oreilly/go/src/cogentcore.org/core/gi/widget.go:540
cogentcore.org/core/gi.(*WidgetBase).DoNeedsRender(0x14005a22000)
    /Users/oreilly/go/src/cogentcore.org/core/gi/render.go:410 +0xe0
cogentcore.org/core/gi.(*Scene).DoUpdate(0x14005a22000)
    /Users/oreilly/go/src/cogentcore.org/core/gi/render.go:473 +0x390
cogentcore.org/core/gi.(*Stage).DoUpdate(0x1400bed6240?)
    /Users/oreilly/go/src/cogentcore.org/core/gi/stage.go:343 +0x70
cogentcore.org/core/gi.(*StageMgr).UpdateAll(0x1400761bd48)
    /Users/oreilly/go/src/cogentcore.org/core/gi/stagemgr.go:287 +0xc8
cogentcore.org/core/gi.(*RenderWin).RenderWindow(0x1400761bd10)
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:936 +0x104
cogentcore.org/core/gi.(*RenderWin).HandleWindowEvents(0x1400761bd10, {0x1025fd618, 0x14018200540})
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:619 +0x4e0
cogentcore.org/core/gi.(*RenderWin).HandleEvent(0x1400761bd10, {0x1025fd618?, 0x14018200540})
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:603 +0x158
cogentcore.org/core/gi.(*RenderWin).EventLoop(0x1400761bd10)
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:569 +0x108
created by cogentcore.org/core/gi.(*RenderWin).GoStartEventLoop in goroutine 53
    /Users/oreilly/go/src/cogentcore.org/core/gi/renderwin.go:523 +0xa4

Platform

macOS