Hi Andy: We need you to create an issue here 
https://github.com/mapserver/mapserver/issues and we can go from there...

Steve

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Andy Colson
Sent: Tuesday, May 01, 2012 10:47 AM
To: mapserver-users
Subject: [mapserver-users] Re: perl errorObj

On 5/1/2012 8:50 AM, Andy Colson wrote:
> I have noticed a problem with the errorObj 
> mapserver/mapscript/swig/perl object.
>
> Its treated as an array, the generated code to get the message looks 
> like this:
>
> arg1 = (errorObj *)(argp1);
> result = (char *)(char *) ((arg1)->message); { size_t size = 2048;
>
> while (size && (result[size - 1] == '\0')) --size;
>
> ST(argvi) = SWIG_FromCharPtrAndSize(result, size); argvi++ ; }
>
> When I log errors:
> my $errObj = new mapscript::errorObj(); while ($errObj) { $s .= 
> "ERROR: $errObj->{code}:$errObj->{message}:$errObj->{routine}<br>";
> $errObj = $errObj->next();
> }
>
> I get the message, but then huge amounts of garbage data as well.
>
>
> In plmodule.i I tried to add a typemap:
>
> %typemap(memberout) char[ANY] {
> $result = newSVpvn($1, strlen($1));
> argvi++;
> }
>
>
> But it doesn't seem to work, the generated code is exactly the same as 
> it was before. (I'm new to mapscript and swig, so I'm just guessing)
>
> Any help or hints on how I might fix this?
>
> Thanks,
>
> -Andy


Ok, this works:

%typemap(out) char[ANY] {
        $result = newSVpvn($1, strlen($1));
        argvi++;
}

I was worried about it changing too much code, but after looking at the 
generated mapscript_wrap.c, it looks fine by me.  I also tested it on my test 
box and it reports errors much much better.

I'm going to put this on my live site and run it for a while.

Are there any -dev's on this list?  I'm not subscribed to mapserver-dev, I'm 
hoping I can post this here and a dev can verify its ok and add it to 
plmodule.i.

Pretty please?

-Andy
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to