Skip to content

Commit

Permalink
Merge pull request #231 from wsfulton/swig-4.2.0-support
Browse files Browse the repository at this point in the history
const ldns_rdf * typemap fixes to support swig-4.2.0
  • Loading branch information
wtoorop authored Jul 12, 2024
2 parents 65a9abc + 40a9469 commit 34fdb48
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions contrib/python/ldns_rdf.i
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
SWIGTYPE_p_ldns_struct_rdf, SWIG_POINTER_OWN | 0));
}

#if SWIG_VERSION < 0x040200
/*
* Automatic conversion of const (ldns_rdf *) parameter from string.
* Argument default value.
Expand Down Expand Up @@ -113,6 +114,51 @@
#endif
}

#else
/*
* Automatic conversion of const (ldns_rdf *) parameter from string.
* Argument default value.
*/
%typemap(arginit, noblock=1) const ldns_rdf *
{
PyObject *$1_bytes = NULL;
}

/*
* Automatic conversion of const (ldns_rdf *) parameter from string.
* Preparation of arguments.
*/
%typemap(in, noblock=1) const ldns_rdf * (void* argp, $1_ltype tmp = 0, int res)
{
if (Python_str_Check($input)) {
const char *$1_str = SWIG_PyUnicode_AsUTF8AndSize($input, NULL, &$1_bytes);
if ($1_str == NULL) {
%argument_fail(SWIG_TypeError, "char *", $symname, $argnum);
}
tmp = ldns_dname_new_frm_str($1_str);
if (tmp == NULL) {
%argument_fail(SWIG_TypeError, "char *", $symname, $argnum);
}
$1 = ($1_ltype) tmp;
} else {
res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_ldns_struct_rdf, 0 | 0);
if (!SWIG_IsOK(res)) {
%argument_fail(res, "ldns_rdf const *", $symname, $argnum);
}
$1 = ($1_ltype) argp;
}
}

/*
* Automatic conversion of const (ldns_rdf *) parameter from string.
* Freeing of allocated memory (it's a no op unless compiling for some older versions of the Python stable ABI).
*/
%typemap(freearg, noblock=1) const ldns_rdf *
{
Py_XDECREF($1_bytes);
}
#endif

%nodefaultctor ldns_struct_rdf; /* No default constructor. */
%nodefaultdtor ldns_struct_rdf; /* No default destructor. */

Expand Down

0 comments on commit 34fdb48

Please sign in to comment.