From e7e3ea052969c6905c1acb49a16cfe23798bb9ff Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 12 Dec 2015 23:53:27 -0500 Subject: [PATCH] Fixed a latent bug in Tab.InsertAt() where inserted controls are appended to t.children, causing issues during Tab.Destroy(). --- tab.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tab.go b/tab.go index 69a062a..d18cecd 100644 --- a/tab.go +++ b/tab.go @@ -94,7 +94,12 @@ func (t *Tab) InsertAt(name string, n int, child Control) { // TODO why is this uintmax_t and not intmax_t C.uiTabInsertAt(t.t, cname, C.uintmax_t(n), c) freestr(cname) - t.children = append(t.children, child) + ch := make([]Control, len(t.children) + 1) + // and insert into t.children at the right place + copy(ch[:n], t.children[:n]) + ch[n] = child + copy(ch[n + 1:], t.children[n:]) + t.children = ch } // Delete deletes the nth page of the Tab.