Archive-ByteBoozer
view release on metacpan or search on metacpan
ByteBoozer.xs view on Meta::CPAN
XSRETURN_UNDEF;
RETVAL = target;
OUTPUT:
RETVAL
# my $data = bb_data($file);
void
bb_data(file)
File *file
PPCODE:
# Push string (PV) with data on the stack and mortalize it:
SV *fileData = sv_2mortal(newSVpv((const char *)file->data, file->size));
XPUSHs(fileData);
# my $size = bb_size($file);
void
bb_size(file)
File *file
PPCODE:
# Push unsigned integer (UV) with size on the stack and mortalize it:
SV *fileSize = sv_2mortal(newSVuv(file->size));
XPUSHs(fileSize);
# bb_free($source, $target);
void
bb_free(source, target)
File *source
File *target
$ nm -g cruncher.o | grep outLen
U outLen
In order to address the problem every "inline" function defined by the
cruncher code has been explicitly declared as "static". Static functions
leave no trace in a target object file allowing to successfully load
a shared library.
- fix XS interface compilation warnings, e.g. "pointer targets in passing
argument 2 of 'Perl_newSVpv' differ in signedness"
- fix XS interface compilation warnings, e.g. "warning: unused variable
'RETVAL'" (when using a PPCODE section no manipulation of the RETVAL
variable is required, the section may use direct stack manipulation to
place output values on the stack)
- commented out two params check tests failing due to Params::Validate's
bug report RT#127811: "validate" crashes on a closed IO::Scalar object
0.09 2016-04-01
- rebuilt a distribution package to include missing files "META.yml" and
"META.json"
0.08 2016-01-09
( run in 0.747 second using v1.01-cache-2.11-cpan-71847e10f99 )