[Moscow.pm] Вызов родительского деструктора из PerlXS
Nikita Aznauryan
nikita-aznaourian на yandex.ru
Чт Июл 15 06:13:48 PDT 2010
Есть класс, который создается в XS:
class A {
..
};
MODULE = mod::XS PACKAGE = mod::XS::split
A* A::new()
CODE:
RETVAL = new A();
OUTPUT
RETVAL
void A::DESTROY()
CODE:
delete THIS;
И этот класс наследуется от пакета pac2
package mod::XS::split
use base qw(pac2);
В перле есть пакет, в котором кроме всего есть деструктор
package pac;
sub DESTROY {
...
}
И пакет, который от него наследуется:
package pac2;
use base qw(pac);
sub new {
return mod::XS::split->new();
}
При удалении этого объекта вызывается деструктор из XSUB, но не вызывается деструктор класса pac (то есть родительского).
Вопрос , как из XS-ного деструктора вызывать родительский деструктор.
Почему-то функция -
call_method("SUPER::DESTROY", G_DISCARD); _ не работает. Говорит , Can't call method...
Подробная информация о списке рассылки Moscow-pm