Skip to content

Divide by zero in /core/examples #1665

@pancsta

Description

@pancsta

Describe the bug

Platform: Linux
System platform: Linux
App version: dev (unknown)
Core version: dev (unknown)
Time: 2026-04-02 20:07:07

panic: runtime error: integer divide by zero

goroutine 54 [running]:
runtime/debug.Stack()
	/usr/lib/go/src/runtime/debug/stack.go:26 +0x5e
cogentcore.org/core/core.handleRecover({0x15671e0, 0x26da340})
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/recover.go:44 +0x6b
cogentcore.org/core/core.(*renderWindow).eventLoop.func1()
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:416 +0x1f
panic({0x15671e0?, 0x26da340?})
	/usr/lib/go/src/runtime/panic.go:860 +0x13a
cogentcore.org/core/text/lines.(*Lines).layoutViewLine(0x36951c1f6a88, 0x0, 0x0, {0x36951c24a000, 0x38, 0x38}, {0x36951c1b2000, 0x1, 0x0?})
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/lines/layout.go:108 +0xdf1
cogentcore.org/core/text/lines.(*Lines).layoutViewLines(0x36951c1f6a88, 0x36951bee0cc0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/lines/layout.go:29 +0x22d
cogentcore.org/core/text/lines.(*Lines).SetWidth(0x36951c1f6a88, 0x1, 0x0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/lines/api.go:86 +0x131
cogentcore.org/core/text/textcore.(*Base).layoutAllLines(0x36951bbdf608)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/textcore/layout.go:84 +0xc6
cogentcore.org/core/text/textcore.(*Base).reLayoutAllLines(0x36951bbdf608)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/textcore/layout.go:104 +0x89
cogentcore.org/core/text/textcore.(*Base).SizeDown(0x36951bbdf608, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/text/textcore/layout.go:145 +0x8c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae7520?, 0x36951bbdf608?}, 0x36951bbdf608)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x41a8000044324000?, 0x36951baa2250)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x1?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x36951be3f808?, 0x16c6500?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951be3f808, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951be3f808, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x7f232ccf5800?, 0x36951be3f808?}, 0x36951be3f808)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa24b0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16a3e60?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951c01ea88, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951c01ea88, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae5ae0?, 0x36951c01ea88?}, 0x36951c01ea88)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa2710)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16a3e60?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd99508, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd99508, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae5ae0?, 0x36951bd99508?}, 0x36951bd99508)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa2970)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16c5220?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd98008, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd98008, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae69c0?, 0x36951bd98008?}, 0x36951bd98008)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa2bd0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16a3e60?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd84008, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd84008, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae5ae0?, 0x36951bd84008?}, 0x36951bd84008)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa2e30)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16a3e60?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd5f508, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd5f508, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae5ae0?, 0x36951bd5f508?}, 0x36951bd5f508)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa3090)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16c5220?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd4ea88, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd4ea88, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3680?, {0x1ae69c0?, 0x36951bd4ea88?}, 0x36951bd4ea88)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa32f0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16cd8e0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bb59508, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bb59508, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren.func1(0x26e3660?, {0x1ae6aa0?, 0x36951bb59508?}, 0x36951bb59508)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1042 +0x54
cogentcore.org/core/core.(*WidgetBase).forVisibleChildren(0x4c6f7a?, 0x36951baa3550)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/widget.go:504 +0x1e3
cogentcore.org/core/core.(*WidgetBase).sizeDownChildren(0x46249f?, 0x165bac0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1041 +0x3d
cogentcore.org/core/core.(*Frame).sizeDownChildren(0x26e1700?, 0x16c9e80?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1068 +0x65
cogentcore.org/core/core.(*Frame).sizeDownFrame(0x36951bd5a008, 0x1)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1129 +0x328
cogentcore.org/core/core.(*Frame).SizeDown(0x36951bd5a008, 0x0?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/layout.go:1096 +0x1c
cogentcore.org/core/core.(*Frame).layoutFrame(0x36951bd5a008, {0x0?, 0x0?})
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/render.go:145 +0x117
cogentcore.org/core/core.(*Scene).LayoutScene(0x36951bd5a008)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/render.go:130 +0x96
cogentcore.org/core/core.(*Scene).LayoutRenderScene(0x36951bd5a008)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/render.go:176 +0x18
cogentcore.org/core/core.(*Scene).doUpdate(0x36951bd5a008)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/render.go:249 +0x1f5
cogentcore.org/core/core.(*Stage).doUpdate(0x36951ca08000?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/stage.go:363 +0x57
cogentcore.org/core/core.(*stages).updateAll(0xc?)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/stages.go:258 +0xc5
cogentcore.org/core/core.(*renderWindow).renderWindow(0x36951e10b8c0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:682 +0x12b
cogentcore.org/core/core.(*renderWindow).handleWindowEvents(0x36951e10b8c0, {0x1aecf18, 0x369539a13260})
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:482 +0x705
cogentcore.org/core/core.(*renderWindow).handleEvent(0x36951e10b8c0, {0x1aecf18, 0x369539a13260})
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:462 +0x465
cogentcore.org/core/core.(*renderWindow).eventLoop(0x36951e10b8c0)
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:430 +0xc5
created by cogentcore.org/core/core.(*renderWindow).goStartEventLoop in goroutine 1
	/home/tob/go/pkg/mod/cogentcore.org/core@v0.3.22-0.20260326010021-23998bfc5ad1/core/renderwindow.go:401 +0x65

How to reproduce

1 go run cogentcore.org/core/examples/demo@main
2 widgets - text editor
3 play with the middle divider left right

Example code

Relevant output

Platform

macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working correctly

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions