1
package Embperl::TypeMap;
6
use base qw(ExtUtils::XSBuilder::TypeMap);
9
my ($self, $struct) = @_;
13
foreach my $e ( @{$struct->{elts}} ) {
14
$e->{name} =~ s/\[(.*)\]// or next;
15
$fixedsize{$e->{name}} = $1;
19
my $mapped = $self->SUPER::map_structure($struct);
21
foreach my $e (@{$mapped->{elts}}) {
22
my $nitems = $fixedsize{$e->{name}} or next;
23
if ($e->{type} eq 'char *') {
24
$e->{malloc} = "strncpy(\$dest, \$src, $nitems-1)";
27
# FIXME: need to copy MIN($e->{nitems}, num_given_in_the_first_place)
28
$e->{malloc} = "Copy(\$src, \$dest, $nitems, \$type)";
30
warn "WARNING: don't know how to copy $e->{name}";