in reply to Re: Some functions in .xs file can't be found
in thread Some functions in .xs file can't be found
No, it should be void. The C function doesn't return anything.
#define XSRETURN(off) \ STMT_START { \ const IV tmpXSoff = (off); \ PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); \ return; \ } STMT_END
There are two ways of returning to Perl from an XS function:
- Place it on the Perl stack.
void foo() { ... mXPUSHs(sv); }
- Return it from the C function. The typemap will place it on the Perl stack after any conversion and mortalizing it performs.
SV* foo() { ... return sv; }
The OP's code uses the former approach.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Some functions in .xs file can't be found
by BrowserUk (Patriarch) on Nov 13, 2013 at 16:59 UTC |
In Section
Seekers of Perl Wisdom