[engine.i] VECTORREF_HELPER_INOUT to handle SplitsVec&

pull/2038/head
Christopher Lam 2 years ago
parent c02152b34a
commit e2f5c74bb4

@ -86,6 +86,7 @@ GLIST_HELPER_INOUT(PriceList, SWIGTYPE_p_GNCPrice);
// TODO: free PriceList?
GLIST_HELPER_INOUT(CommodityList, SWIGTYPE_p_gnc_commodity);
VECTOR_HELPER_INOUT(SplitsVec, SWIGTYPE_p_Split, Split);
VECTORREF_HELPER_INOUT(SplitsVec&, SWIGTYPE_p_Split, Split);
VECTOR_HELPER_INOUT(AccountVec, SWIGTYPE_p_Account, Account);
%typemap(newfree) char * "g_free($1);"

@ -185,6 +185,15 @@ typedef char gchar;
}
%enddef
%define VECTORREF_HELPER_INOUT(VectorType, ElemSwigType, ElemType)
%typemap(out) VectorType {
auto accum = [](SCM acc, auto n){ return scm_cons(SWIG_NewPointerObj(n, ElemSwigType, 0), acc); };
$result = std::accumulate ($1->rbegin(), $1->rend(), SCM_EOL, accum);
}
%enddef
#elif defined(SWIGPYTHON) /* Typemaps for Python */
%import "glib.h"

Loading…
Cancel
Save