在SWIG中获取双指针

时间:2013-05-23 20:02:47

标签: c swig

我有一个C API,它在其析构函数中传递两个指向结构的指针,以便在free之后将指针置空。例如:

void freeSomething(Something** foo) {
   free(*foo)
   *foo = null
}

此模式遵循OpenCV API的模式,等等。

不幸的是,使用SWIG包装这些函数很痛苦,因为SWIG创建了一个类型p_Something和一个单独的类型p_p_Something。然后,我必须在SWIG接口中编写实用程序函数以在这些类型之间进行转换。基本上对于我想要释放的每种类型,我必须定义:

%{
#include "something.h"
%}
%inline %{
    void swigFreeSomething(Something* foo) {
        freeSomething(&foo);
    }
%}

我可以通过某种方式自动执行此操作或类似的操作吗?也许完全不同的方法?

0 个答案:

没有答案