diff --git a/go/totp.go b/go/totp.go index 868b660..5e2a78a 100644 --- a/go/totp.go +++ b/go/totp.go @@ -130,16 +130,14 @@ func loadConfigs() { //export getConfigNames func getConfigNames() (**C.char, C.int) { - names := make([]string, 0, len(configs)) + names := make([]*C.char, len(configs)) + i := 0 for name := range configs { - names = append(names, name) - } - cStrings := make([]*C.char, len(names)) - for i, name := range names { - cStrings[i] = C.CString(name) + names[i] = C.CString(name) + i++ } - cArray := (**C.char)(unsafe.Pointer(&cStrings[0])) + cArray := (**C.char)(unsafe.Pointer(&names[0])) runtime.KeepAlive(cArray) return cArray, C.int(len(names))