是否有可能知道`XSUB`是使用`& sub`

时间:2018-01-21 19:09:15

标签: perl perl-xs perlapi

当调用PP sub时,会创建此sub的CX 通过CxHASARGS(CX_CUR())访问此上下文,我们可以检查此子hasargs

但是由于没有创建XSUB上下文,所以我们不能使用这个技巧。

是否可以使用XSUB来调用&sub

UPD
pp_entersubcvXSUB查看来源。我们可以看到代码如何处理hasargs。它访问PL_op->op_flags & OPf_STACKED然后稍后调用目标XSUB

if( PL_op->op_flags & OPf_STACKED ...
...
CvXSUB(cv)(aTHX_ cv);

如果我在XSUB PL_op->op_flags & OPf_STACKED id bin_015 0 1 2 3 4 5 bin_01 0 5339604.0 NaN NaN NaN NaN NaN 1 377342.0 122580.0 85688.0 9501.0 1095.0 156.0 2 NaN 235426.0 313317.0 17025.0 456.0 33.0 3 NaN 16581.0 10759.0 40005.0 3422.0 84.0 4 NaN 1712.0 387.0 1851.0 8746.0 756.0 5 NaN 239.0 40.0 50.0 353.0 2197.0 进行同样的检查,那会没关系吗?

0 个答案:

没有答案