[Perl] Fix warnings when compiling generated wrappers with certain
GCC warning options (Debian bug #436711). git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12848 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
cc85a98f73
commit
5e4c27cdfd
3 changed files with 28 additions and 16 deletions
|
|
@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
|
|||
Version 2.0.5 (in progress)
|
||||
===========================
|
||||
|
||||
2011-11-28: olly
|
||||
[Perl] Fix warnings when compiling generated wrappers with certain
|
||||
GCC warning options (Debian bug #436711).
|
||||
|
||||
2011-11-28: olly
|
||||
[PHP] Update keyword list to include keywords added in PHP releases up to 5.3.
|
||||
|
||||
|
|
|
|||
|
|
@ -33,25 +33,30 @@ XS(SWIG_init) {
|
|||
|
||||
/* Install commands */
|
||||
for (i = 0; swig_commands[i].name; i++) {
|
||||
newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
|
||||
// Casts only needed for Perl < 5.10.
|
||||
#ifdef __cplusplus
|
||||
newXS(const_cast<char*>(swig_commands[i].name), swig_commands[i].wrapper, const_cast<char*>(__FILE__));
|
||||
#else
|
||||
newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Install variables */
|
||||
for (i = 0; swig_variables[i].name; i++) {
|
||||
SV *sv;
|
||||
sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
|
||||
sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
|
||||
if (swig_variables[i].type) {
|
||||
SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
|
||||
} else {
|
||||
sv_setiv(sv,(IV) 0);
|
||||
}
|
||||
swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get);
|
||||
swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get);
|
||||
}
|
||||
|
||||
/* Install constant */
|
||||
for (i = 0; swig_constants[i].type; i++) {
|
||||
SV *sv;
|
||||
sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
|
||||
sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
|
||||
switch(swig_constants[i].type) {
|
||||
case SWIG_INT:
|
||||
sv_setiv(sv, (IV) swig_constants[i].lvalue);
|
||||
|
|
@ -60,7 +65,7 @@ XS(SWIG_init) {
|
|||
sv_setnv(sv, (double) swig_constants[i].dvalue);
|
||||
break;
|
||||
case SWIG_STRING:
|
||||
sv_setpv(sv, (char *) swig_constants[i].pvalue);
|
||||
sv_setpv(sv, (const char *) swig_constants[i].pvalue);
|
||||
break;
|
||||
case SWIG_POINTER:
|
||||
SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
|
||||
|
|
|
|||
|
|
@ -212,8 +212,7 @@ SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
|
|||
if (ty) {
|
||||
swig_cast_info *iter = ty->cast;
|
||||
while (iter) {
|
||||
if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
|
||||
(iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
|
||||
if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
|
||||
if (iter == ty->cast)
|
||||
return iter;
|
||||
/* Move iter to the top of the linked list */
|
||||
|
|
@ -344,7 +343,7 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
|
|||
SV *obj=newSV(0);
|
||||
HV *hash=newHV();
|
||||
HV *stash;
|
||||
sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
|
||||
sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
|
||||
stash=SvSTASH(SvRV(obj));
|
||||
if (flags & SWIG_POINTER_OWN) {
|
||||
HV *hv;
|
||||
|
|
@ -362,7 +361,7 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
|
|||
sv_bless(sv, stash);
|
||||
}
|
||||
else {
|
||||
sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
|
||||
sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -453,19 +452,23 @@ typedef struct {
|
|||
|
||||
/* Magic variable code */
|
||||
#ifndef PERL_OBJECT
|
||||
#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
|
||||
#ifndef MULTIPLICITY
|
||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
|
||||
#else
|
||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
|
||||
#endif
|
||||
# ifdef __cplusplus
|
||||
# define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
|
||||
# else
|
||||
# define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
|
||||
# endif
|
||||
# ifndef MULTIPLICITY
|
||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
|
||||
# else
|
||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
|
||||
# endif
|
||||
#else
|
||||
# define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
|
||||
SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
|
||||
#endif
|
||||
{
|
||||
MAGIC *mg;
|
||||
sv_magic(sv,sv,'U',(char *) name,strlen(name));
|
||||
sv_magic(sv,sv,'U',name,strlen(name));
|
||||
mg = mg_find(sv,'U');
|
||||
mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
|
||||
mg->mg_virtual->svt_get = (SwigMagicFunc) get;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue