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:
Matthias Köppe 2003-11-02 13:49:45 +00:00
commit 13f434304d

View file

@ -1,4 +1,4 @@
/* ----------------------------------------------------------------------------- /* ---------------------------------------------------------------------- -*- c -*-
* perl5.swg * perl5.swg
* *
* Perl5 runtime library * Perl5 runtime library
@ -122,31 +122,59 @@ extern "C" {
#define SWIG_OWNER 1 #define SWIG_OWNER 1
#define SWIG_SHADOW 2 #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 #ifdef SWIG_NOINCLUDE
#ifndef PERL_OBJECT extern int
extern int SWIG_ConvertPtr(SV *, void **, swig_type_info *, int flags); SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT
extern void SWIG_MakePtr(SV *, void *, swig_type_info *, int flags); SV *, void **, swig_type_info *, int flags);
swig_type_info *SWIG_TypeCheckRV(SV *rv, swig_type_info *ty); extern void
#else SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT
extern int SWIG_ConvertPtr_(CPerlObj *, SV *, void **, swig_type_info *,int flags); SV *, void *, swig_type_info *, int flags);
extern void SWIG_MakePtr_(CPerlObj *, SV *, void *, swig_type_info *, int flags); extern SV *
swig_type_info * SWIG_TypeCheckRV_(CPerlObj *pPerl, SV *rv, swig_type_info *ty); SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT
#define SWIG_ConvertPtr(a,b,c,d) SWIG_ConvertPtr_(pPerl,a,b,c,d) void *, swig_type_info *, int flags);
#define SWIG_MakePtr(a,b,c,d) SWIG_MakePtr_(pPerl,a,b,c,d) extern swig_type_info *
#define SWIG_TypeCheckRV(a,b,c) SWIG_TypeCheckRV_(pPerl,a,b,c) SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT
#endif SV *rv, swig_type_info *ty);
#else #else
#ifndef PERL_OBJECT
SWIGRUNTIME(swig_type_info *) SWIGRUNTIME(swig_type_info *)
SWIG_TypeCheckRV(SV *rv, swig_type_info *ty) SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT
#else SV *rv, swig_type_info *ty)
#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_type_info *s; swig_type_info *s;
if (!ty) return 0; /* Void pointer */ 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 */ /* Function for getting a pointer value */
#ifndef PERL_OBJECT
SWIGRUNTIME(int) SWIGRUNTIME(int)
SWIG_ConvertPtr(SV *sv, void **ptr, swig_type_info *_t, int flags) SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT
#else SV *sv, void **ptr, swig_type_info *_t, int flags)
#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_type_info *tc; swig_type_info *tc;
void *voidptr = (void *)0; void *voidptr = (void *)0;
@ -240,14 +263,10 @@ SWIG_ConvertPtr_(CPerlObj *pPerl, SV *sv, void **ptr, swig_type_info *_t, int fl
*ptr = voidptr; *ptr = voidptr;
return 0; 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) SWIGRUNTIME(void)
SWIG_MakePtr_(CPerlObj *pPerl, SV *sv, void *ptr, swig_type_info *t, int flags) SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT
#endif SV *sv, void *ptr, swig_type_info *t, int flags)
{ {
if (ptr && (flags & SWIG_SHADOW)) { if (ptr && (flags & SWIG_SHADOW)) {
SV *self; 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 #endif
typedef XS(SwigPerlWrapper); typedef XS(SwigPerlWrapper);