[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)
|
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
|
2011-11-28: olly
|
||||||
[PHP] Update keyword list to include keywords added in PHP releases up to 5.3.
|
[PHP] Update keyword list to include keywords added in PHP releases up to 5.3.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,25 +33,30 @@ XS(SWIG_init) {
|
||||||
|
|
||||||
/* Install commands */
|
/* Install commands */
|
||||||
for (i = 0; swig_commands[i].name; i++) {
|
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 */
|
/* Install variables */
|
||||||
for (i = 0; swig_variables[i].name; i++) {
|
for (i = 0; swig_variables[i].name; i++) {
|
||||||
SV *sv;
|
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) {
|
if (swig_variables[i].type) {
|
||||||
SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
|
SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
|
||||||
} else {
|
} else {
|
||||||
sv_setiv(sv,(IV) 0);
|
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 */
|
/* Install constant */
|
||||||
for (i = 0; swig_constants[i].type; i++) {
|
for (i = 0; swig_constants[i].type; i++) {
|
||||||
SV *sv;
|
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) {
|
switch(swig_constants[i].type) {
|
||||||
case SWIG_INT:
|
case SWIG_INT:
|
||||||
sv_setiv(sv, (IV) swig_constants[i].lvalue);
|
sv_setiv(sv, (IV) swig_constants[i].lvalue);
|
||||||
|
|
@ -60,7 +65,7 @@ XS(SWIG_init) {
|
||||||
sv_setnv(sv, (double) swig_constants[i].dvalue);
|
sv_setnv(sv, (double) swig_constants[i].dvalue);
|
||||||
break;
|
break;
|
||||||
case SWIG_STRING:
|
case SWIG_STRING:
|
||||||
sv_setpv(sv, (char *) swig_constants[i].pvalue);
|
sv_setpv(sv, (const char *) swig_constants[i].pvalue);
|
||||||
break;
|
break;
|
||||||
case SWIG_POINTER:
|
case SWIG_POINTER:
|
||||||
SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
|
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) {
|
if (ty) {
|
||||||
swig_cast_info *iter = ty->cast;
|
swig_cast_info *iter = ty->cast;
|
||||||
while (iter) {
|
while (iter) {
|
||||||
if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
|
if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
|
||||||
(iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
|
|
||||||
if (iter == ty->cast)
|
if (iter == ty->cast)
|
||||||
return iter;
|
return iter;
|
||||||
/* Move iter to the top of the linked list */
|
/* 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);
|
SV *obj=newSV(0);
|
||||||
HV *hash=newHV();
|
HV *hash=newHV();
|
||||||
HV *stash;
|
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));
|
stash=SvSTASH(SvRV(obj));
|
||||||
if (flags & SWIG_POINTER_OWN) {
|
if (flags & SWIG_POINTER_OWN) {
|
||||||
HV *hv;
|
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);
|
sv_bless(sv, stash);
|
||||||
}
|
}
|
||||||
else {
|
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 */
|
/* Magic variable code */
|
||||||
#ifndef PERL_OBJECT
|
#ifndef PERL_OBJECT
|
||||||
#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
|
# ifdef __cplusplus
|
||||||
#ifndef MULTIPLICITY
|
# define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
|
||||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
|
# else
|
||||||
#else
|
# define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
|
||||||
SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
|
# endif
|
||||||
#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
|
#else
|
||||||
# define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
|
# 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 *))
|
SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
MAGIC *mg;
|
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_find(sv,'U');
|
||||||
mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
|
mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
|
||||||
mg->mg_virtual->svt_get = (SwigMagicFunc) get;
|
mg->mg_virtual->svt_get = (SwigMagicFunc) get;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue