mainly for SF bug #3423119
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12828 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
17c5f881ee
commit
fb9750698f
3 changed files with 19 additions and 5 deletions
|
|
@ -5,6 +5,12 @@ See the RELEASENOTES file for a summary of changes in each release.
|
|||
Version 2.0.5 (in progress)
|
||||
===========================
|
||||
|
||||
2011-10-24: talby
|
||||
[perl5] SF bug #3423119 - overload dispatch stack corruption fix. Better, but more research
|
||||
is needed on a stable path for tail calls in XS.
|
||||
|
||||
Also, fix for large long longs in 32 bit perl.
|
||||
|
||||
2011-10-13: xavier98
|
||||
[octave] Allow Octave modules to be re-loaded after a "clear all".
|
||||
|
||||
|
|
|
|||
|
|
@ -172,8 +172,12 @@ SWIG_From_dec(long long)(long long value)
|
|||
SV *sv;
|
||||
if (value >= IV_MIN && value <= IV_MAX)
|
||||
sv = newSViv(value);
|
||||
else
|
||||
sv = newSVpvf("%lld", value);
|
||||
else {
|
||||
//sv = newSVpvf("%lld", value); doesn't work in non 64bit Perl
|
||||
char temp[256];
|
||||
sprintf(temp, "%lld", value);
|
||||
sv = newSVpv(temp, 0);
|
||||
}
|
||||
return sv_2mortal(sv);
|
||||
}
|
||||
}
|
||||
|
|
@ -245,8 +249,12 @@ SWIG_From_dec(unsigned long long)(unsigned long long value)
|
|||
SV *sv;
|
||||
if (value <= UV_MAX)
|
||||
sv = newSVuv(value);
|
||||
else
|
||||
sv = newSVpvf("%llu", value);
|
||||
else {
|
||||
//sv = newSVpvf("%llu", value); doesn't work in non 64bit Perl
|
||||
char temp[256];
|
||||
sprintf(temp, "%llu", value);
|
||||
sv = newSVpv(temp, 0);
|
||||
}
|
||||
return sv_2mortal(sv);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -792,7 +792,7 @@ public:
|
|||
} else if (!Getattr(n, "sym:nextSibling")) {
|
||||
/* Generate overloaded dispatch function */
|
||||
int maxargs;
|
||||
String *dispatch = Swig_overload_dispatch_cast(n, "++PL_markstack_ptr; SWIG_CALLXS(%s); return;", &maxargs);
|
||||
String *dispatch = Swig_overload_dispatch_cast(n, "PUSHMARK(MARK); SWIG_CALLXS(%s); return;", &maxargs);
|
||||
|
||||
/* Generate a dispatch wrapper for all overloaded functions */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue