Use the preprocessor to rename external functions of the SWIG runtime
API to follow the naming convention SWIG_<language>_<function>. This
should allow linking more than one interpreter into a program.
Unify the pointer-conversion runtime API. The standard
functions are:
* SWIG_NewPointerObj (POINTER, TYPE, FLAGS)
-- Create an scripting object that represents a typed
pointer. FLAGS are language specific.
* SWIG_ConvertPtr (INPUT, RESULT, TYPE, FLAGS)
-- Get a pointer from the scripting object INPUT and
store it in the place RESULT. When a type mismatch
occurs, return nonzero.
* SWIG_MustGetPtr (INPUT, TYPE, ARGNUM, FLAGS)
-- Get a pointer from the scripting object INPUT and
return it. When a type mismatch occurs, throw an
exception. If ARGNUM > 0, report it as the
argument number that has the type mismatch.
[Guile]: No changes.
[MzScheme]: No changes.
[Perl]: Add the function SWIG_NewPointerObj.
The function SWIG_MakePtr is kept.
The function SWIG_MustGetPtr is currently not
supported.
[Python]: Add the function SWIG_MustGetPtr.
[Ruby]: Add the function SWIG_MustGetPtr.
[Tcl]: Remove the "interp" argument of
SWIG_NewInstanceObj, SWIG_ConvertPtr,
SWIG_ConvertPacked, and SWIG_ConvertPtrFromString.
The function SWIG_MustGetPtr is currently
not supported.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5243 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
de27e32afb
commit
13f434304d
1 changed files with 63 additions and 35 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
/* ---------------------------------------------------------------------- -*- c -*-
|
||||
* perl5.swg
|
||||
*
|
||||
* Perl5 runtime library
|
||||
|
|
@ -122,31 +122,59 @@ extern "C" {
|
|||
#define SWIG_OWNER 1
|
||||
#define SWIG_SHADOW 2
|
||||
|
||||
/* Common SWIG API */
|
||||
|
||||
#ifdef PERL_OBJECT
|
||||
# define SWIG_ConvertPtr(obj, pp, type, flags) \
|
||||
SWIG_Perl_ConvertPtr(pPerl, obj, pp, type, flags)
|
||||
# define SWIG_NewPointerObj(p, type, flags) \
|
||||
SWIG_Perl_NewPointerObj(pPerl, p, type, flags)
|
||||
#else
|
||||
# define SWIG_ConvertPtr(obj, pp, type, flags) \
|
||||
SWIG_Perl_ConvertPtr(obj, pp, type, flags)
|
||||
# define SWIG_NewPointerObj(p, type, flags) \
|
||||
SWIG_Perl_NewPointerObj(p, type, flags)
|
||||
#endif
|
||||
|
||||
/* Perl-specific API */
|
||||
#ifdef PERL_OBJECT
|
||||
# define SWIG_MakePtr(sv, ptr, type, flags) \
|
||||
SWIG_Perl_MakePtr(pPerl, sv, ptr, type, flags)
|
||||
# define SWIG_TypeCheckRV(rv, ty) \
|
||||
SWIG_Perl_TypeCheckRV(pPerl, rv, ty)
|
||||
#else
|
||||
# define SWIG_MakePtr(sv, ptr, type, flags) \
|
||||
SWIG_Perl_MakePtr(sv, ptr, type, flags)
|
||||
# define SWIG_TypeCheckRV(rv, ty) \
|
||||
SWIG_Perl_TypeCheckRV(rv, ty)
|
||||
#endif
|
||||
|
||||
#ifdef PERL_OBJECT
|
||||
# define SWIG_MAYBE_PERL_OBJECT CPerlObj *pPerl,
|
||||
#else
|
||||
# define SWIG_MAYBE_PERL_OBJECT
|
||||
#endif
|
||||
|
||||
#ifdef SWIG_NOINCLUDE
|
||||
|
||||
#ifndef PERL_OBJECT
|
||||
extern int SWIG_ConvertPtr(SV *, void **, swig_type_info *, int flags);
|
||||
extern void SWIG_MakePtr(SV *, void *, swig_type_info *, int flags);
|
||||
swig_type_info *SWIG_TypeCheckRV(SV *rv, swig_type_info *ty);
|
||||
#else
|
||||
extern int SWIG_ConvertPtr_(CPerlObj *, SV *, void **, swig_type_info *,int flags);
|
||||
extern void SWIG_MakePtr_(CPerlObj *, SV *, void *, swig_type_info *, int flags);
|
||||
swig_type_info * SWIG_TypeCheckRV_(CPerlObj *pPerl, SV *rv, swig_type_info *ty);
|
||||
#define SWIG_ConvertPtr(a,b,c,d) SWIG_ConvertPtr_(pPerl,a,b,c,d)
|
||||
#define SWIG_MakePtr(a,b,c,d) SWIG_MakePtr_(pPerl,a,b,c,d)
|
||||
#define SWIG_TypeCheckRV(a,b,c) SWIG_TypeCheckRV_(pPerl,a,b,c)
|
||||
#endif
|
||||
|
||||
extern int
|
||||
SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *, void **, swig_type_info *, int flags);
|
||||
extern void
|
||||
SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *, void *, swig_type_info *, int flags);
|
||||
extern SV *
|
||||
SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT
|
||||
void *, swig_type_info *, int flags);
|
||||
extern swig_type_info *
|
||||
SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *rv, swig_type_info *ty);
|
||||
|
||||
#else
|
||||
|
||||
#ifndef PERL_OBJECT
|
||||
SWIGRUNTIME(swig_type_info *)
|
||||
SWIG_TypeCheckRV(SV *rv, swig_type_info *ty)
|
||||
#else
|
||||
#define SWIG_TypeCheckRV(a,b,c) SWIG_TypeCheckRV_(pPerl,a,b,c)
|
||||
SWIGRUNTIME(swig_type_info *)
|
||||
SWIG_TypeCheckRV_(CPerlObj *pPerl, SV *rv, swig_type_info *ty)
|
||||
#endif
|
||||
SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *rv, swig_type_info *ty)
|
||||
{
|
||||
swig_type_info *s;
|
||||
if (!ty) return 0; /* Void pointer */
|
||||
|
|
@ -173,14 +201,9 @@ SWIG_TypeCheckRV_(CPerlObj *pPerl, SV *rv, swig_type_info *ty)
|
|||
|
||||
/* Function for getting a pointer value */
|
||||
|
||||
#ifndef PERL_OBJECT
|
||||
SWIGRUNTIME(int)
|
||||
SWIG_ConvertPtr(SV *sv, void **ptr, swig_type_info *_t, int flags)
|
||||
#else
|
||||
#define SWIG_ConvertPtr(a,b,c,d) SWIG_ConvertPtr_(pPerl,a,b,c,d)
|
||||
SWIGRUNTIME(int)
|
||||
SWIG_ConvertPtr_(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t, int flags)
|
||||
#endif
|
||||
SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *sv, void **ptr, swig_type_info *_t, int flags)
|
||||
{
|
||||
swig_type_info *tc;
|
||||
void *voidptr = (void *)0;
|
||||
|
|
@ -240,14 +263,10 @@ SWIG_ConvertPtr_(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t, int fl
|
|||
*ptr = voidptr;
|
||||
return 0;
|
||||
}
|
||||
#ifndef PERL_OBJECT
|
||||
SWIGRUNTIME(void)
|
||||
SWIG_MakePtr(SV *sv, void *ptr, swig_type_info *t,int flags)
|
||||
#else
|
||||
#define SWIG_MakePtr(a,b,c,d) SWIG_MakePtr_(pPerl,a,b,c,d)
|
||||
|
||||
SWIGRUNTIME(void)
|
||||
SWIG_MakePtr_(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t, int flags)
|
||||
#endif
|
||||
SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT
|
||||
SV *sv, void *ptr, swig_type_info *t, int flags)
|
||||
{
|
||||
if (ptr && (flags & SWIG_SHADOW)) {
|
||||
SV *self;
|
||||
|
|
@ -276,6 +295,15 @@ SWIG_MakePtr_(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t, int flags)
|
|||
}
|
||||
}
|
||||
|
||||
SWIGRUNTIME(SV *)
|
||||
SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT
|
||||
void *ptr, swig_type_info *t, int flags)
|
||||
{
|
||||
SV *result = sv_newmortal();
|
||||
SWIG_MakePtr(result, ptr, t, flags);
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
typedef XS(SwigPerlWrapper);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue