我有一個像這樣的perl對象(祝福引用哈希)。從XS訪問存儲在perl對象(祝福哈希)中的值
sub funcname {
#some code
}
my $o = My::Class->new();
$o->{internal_data} = \&funcname; #I know it is not nice
在其他地方在XS碼在那裏我有$ O參考我需要的$o->{internal_data}
價值的地方。
/* at some point in XS code */
SV *obj = ... /* $o value passed to a XS function */
SV *func;
...
/* here I do not know how to load $o->{internal_data} value into func */
...
call_sv(func,G_SCALAR);
perl(api | xstut | guts | ???)中可能有一些章節。我只是無法找到它。
在此先感謝您的任何提示。
- KMX
非常感謝MUTABLE_HV訣竅 – kmx 2011-04-06 21:57:52
@ kmx,'MUTABLE_HV(sv)'基本上是'(HV *)sv',除非它更安全,因爲它會爲'const SV * const_sv; MUTABLE_HV(const_sv)'。 – ikegami 2011-04-07 06:09:53
@ kmx,請記住,AsV和HV是SV的「子類」。 – ikegami 2011-04-07 06:10:59