2
我是FFI和GNU Guile的新手,我正在编写绑定到大量使用char*
变量的库。这里是函数代码,包装C函数:GNU Guile SCM to char *
static inline char*
scm_to_ascii_string(SCM string)
{
return SCM_UNBNDP(SCM) ? NULL
: scm_to_stringn(string, NULL, "ascii", SCM_FAILED_CONVERSION_ERROR);
}
SCM_DEFINE(func, "func", ...)
{
...
char *server_pass = scm_to_ascii_string(scm_server_pass);
char *username = scm_to_ascii_string(scm_username);
char *realname = scm_to_ascii_string(scm_realname);
}
问题是,任何调用转换函数都会抛出错误,导致内存泄漏。 我能做些什么呢?