QofIdType and QofIdTypeConst: handle similarly to const char*

Previous swigged function- note the `new` is never deleted. Because
they are both const char*, they must be swigged similarly to strings.

static SCM
_wrap_QOF_ID_BOOK_SCM ()
{
 #define FUNC_NAME "QOF-ID-BOOK-SCM"
  SCM gswig_result;
  SWIGUNUSED int gswig_list_p = 0;
  QofIdTypeConst result;

  result = QOF_ID_BOOK_SCM();
  {
    QofIdTypeConst * resultptr;
    resultptr = new QofIdTypeConst((const QofIdTypeConst &) result);
    gswig_result =  SWIG_NewPointerObj (resultptr, SWIGTYPE_p_QofIdTypeConst, 1);
  }

  return gswig_result;
 #undef FUNC_NAME
}

After this change:

static SCM
_wrap_QOF_ID_BOOK_SCM ()
{
 #define FUNC_NAME "QOF-ID-BOOK-SCM"
  SCM gswig_result;
  SWIGUNUSED int gswig_list_p = 0;
  QofIdType result;

  result = QOF_ID_BOOK_SCM();
  gswig_result = result ? scm_from_utf8_string (result) : SCM_BOOL_F;

  return gswig_result;
 #undef FUNC_NAME
}
This commit is contained in:
Christopher Lam 2023-12-11 22:10:37 +08:00
parent f5996afd3e
commit 5bf9ca0b55

View File

@ -69,6 +69,16 @@ typedef char gchar;
%typemap(in) time64 * (time64 t) "t = scm_to_int64($input); $1 = &t;" %typemap(in) time64 * (time64 t) "t = scm_to_int64($input); $1 = &t;"
%typemap(out) time64 * " $result = ($1) ? scm_from_int64(*($1)) : SCM_BOOL_F; " %typemap(out) time64 * " $result = ($1) ? scm_from_int64(*($1)) : SCM_BOOL_F; "
%typemap(in) QofIdType " $1 = scm_to_utf8_string ($input); "
%typemap(out) QofIdType " $result = $1 ? scm_from_utf8_string ($1) : SCM_BOOL_F; "
%typemap(freearg) QofIdType " g_free ((gpointer)$1); "
%typemap(newfree) QofIdType " g_free ((gpointer)$1); "
%typemap(in) QofIdTypeConst " $1 = scm_to_utf8_string ($input); "
%typemap(out) QofIdTypeConst " $result = $1 ? scm_from_utf8_string ($1) : SCM_BOOL_F; "
%typemap(freearg) QofIdTypeConst " g_free ((gpointer)$1); "
%typemap(newfree) QofIdTypeConst " g_free ((gpointer)$1); "
%typemap(in) struct tm * (struct tm t, char *tzone) { %typemap(in) struct tm * (struct tm t, char *tzone) {
SCM tm = $input; SCM tm = $input;
t.tm_sec = scm_to_int(SCM_SIMPLE_VECTOR_REF(tm, 0)); t.tm_sec = scm_to_int(SCM_SIMPLE_VECTOR_REF(tm, 0));