log.Println("Error: must pre-allocate parameter.")
return-1
}else{
ifunsafe.Pointer(param.name)!=nullPtr{
ifn:=C.GoString(param.name);n!=p.Name{
log.Println("Warning: the pre-allocated parameter name does not match the parameter name, it will be freed.",n,p.Name)
C.free(unsafe.Pointer(param.name))
}else{
nameReady=true
}
}
ifunsafe.Pointer(param.content)!=nullPtr{
ifint(param.content_len)==len(p.Content){
contentAllocated=true
}else{
log.Println("Warning: the pre-allocated content len does not match parameter content len, the pre-allocated content will be freed.",param.content_len,len(p.Content))
C.free(unsafe.Pointer(param.content))
ifint(param.content_len)!=len(p.Content){
log.Println("Error: the pre-allocated content len does not match parameter content len.",param.content_len,len(p.Content))