Add helper function for passing Go string slices to C; document some functions that won't be ported

This commit is contained in:
2026-01-31 21:35:11 -05:00
parent 4ea47594ae
commit 52793fd343
3 changed files with 21 additions and 17 deletions
+15
View File
@@ -27,6 +27,21 @@ func getPascalStringFromBytes(goBytes []byte) C.PascalString {
}
}
// getCPascalStringArrayFromStringSlice converts a Go slice
// of strings to a C array of pascal strings.
func getCPascalStringArrayFromStringSlice(goSlice []string) *C.PascalString {
// allocate C array for PascalStrings
cArrPtr := (*C.PascalString)(C.malloc(C.size_t(len(goSlice)) * C.size_t(C.sizeof_PascalString)))
// populate the array with the decrypted lines
cArr := (*[1 << 30]C.PascalString)(unsafe.Pointer(cArrPtr))[:len(goSlice):len(goSlice)]
for i := range goSlice {
cArr[i] = getPascalString(goSlice[i])
}
return cArrPtr
}
// GetPascalStringFromCString is a helper meant to be used from C.
//
//export GetPascalStringFromCString