Fix #1904537 Swig causes a Perl warning 'x used only once' in Perl 5.10 reported by Ari Jolma

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10286 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2008-02-29 23:42:52 +00:00
commit 30c4214ece
5 changed files with 11 additions and 7 deletions

View file

@ -1,5 +1,9 @@
Version 1.3.35 (in progress)
============================
02/29/2008: wsfulton
[Perl] Fix #1904537 Swig causes a Perl warning "x used only once" in Perl 5.10
reported by Ari Jolma
02/29/2008: wsfulton
[Python] Add shared_ptr varin/varout typemaps for wrapping global variables.

View file

@ -39,7 +39,7 @@ XS(SWIG_init) {
/* Install variables */
for (i = 0; swig_variables[i].name; i++) {
SV *sv;
sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2);
sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
if (swig_variables[i].type) {
SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
} else {
@ -51,7 +51,7 @@ XS(SWIG_init) {
/* Install constant */
for (i = 0; swig_constants[i].type; i++) {
SV *sv;
sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2);
sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
switch(swig_constants[i].type) {
case SWIG_INT:
sv_setiv(sv, (IV) swig_constants[i].lvalue);

View file

@ -444,7 +444,7 @@ SWIG_Perl_GetModule(void) {
/* first check if pointer already created */
if (!type_pointer) {
pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE);
pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
if (pointer && SvOK(pointer)) {
type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
}
@ -458,7 +458,7 @@ SWIG_Perl_SetModule(swig_module_info *module) {
SV *pointer;
/* create a new pointer */
pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE);
pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
sv_setiv(pointer, PTR2IV(module));
}

View file

@ -62,7 +62,7 @@
/* constant */
%define %set_constant(name, obj) %begin_block
SV *sv = get_sv((char*) SWIG_prefix name, TRUE | 0x2);
SV *sv = get_sv((char*) SWIG_prefix name, TRUE | 0x2 | GV_ADDMULTI);
sv_setsv(sv, obj);
SvREADONLY_on(sv);
%end_block %enddef

View file

@ -376,7 +376,7 @@
%dirout_fail(swig_res,"$type");
}
$result = %reinterpret_cast(swig_argp, $ltype);
swig_acquire_ownership_obj(%as_voidptr($result), own);
swig_acquire_ownership_obj(%as_voidptr($result), own /* & TODO: SWIG_POINTER_OWN */);
}
%typemap(directorfree,noblock=1,match="directorout") SWIGTYPE * {
if (director) {
@ -392,7 +392,7 @@
}
if (!swig_argp) { %dirout_nullref("$type"); }
$result = %reinterpret_cast(swig_argp, $ltype);
swig_acquire_ownership_obj(%as_voidptr($result), own);
swig_acquire_ownership_obj(%as_voidptr($result), own /* & TODO: SWIG_POINTER_OWN */);
}
%typemap(directorfree,noblock=1,match="directorout") SWIGTYPE & {
if (director) {