Fix SF#2564192

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11110 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Robert Stone 2009-02-05 15:47:42 +00:00
commit 6574067b72
3 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,6 @@
Version 1.3.39 (in progress)
============================
2009-02-04: talby
[Perl] Fix SF#2564192 reported by David Kolovratnk.
SWIG_AsCharPtrAndSize() now handles "get" magic.

View file

@ -1,6 +1,6 @@
use strict;
use warnings;
use Test::More tests => 4;
use Test::More tests => 5;
BEGIN { use_ok('char_strings') }
require_ok('char_strings');
@ -10,3 +10,6 @@ is(char_strings::CharPingPong($val1), "100", 'cstr1');
my $val2 = "greetings";
is(char_strings::CharPingPong($val2), "greetings", 'cstr2');
# SF#2564192
"this is a test" =~ /(\w+)$/;
is(char_strings::CharPingPong($1), "test", "handles Magical");

View file

@ -6,6 +6,11 @@
SWIGINTERN int
SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
{
if (SvMAGICAL(obj)) {
SV *tmp = sv_newmortal();
SvSetSV(tmp, obj);
obj = tmp;
}
if (SvPOK(obj)) {
STRLEN len = 0;
char *cstr = SvPV(obj, len);