#define PERL_NO_GET_CONTEXT
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifndef SAVEDESTRUCTOR_X
#define SAVEDESTRUCTOR_X SAVEDESTRUCTOR
static void scope_exit(void* block) {
dTHX;
#else
static void scope_exit(pTHX_ void* block) {
#endif
dSP;
PUSHMARK(SP);
call_sv(block, G_VOID | G_DISCARD | G_NOARGS | G_EVAL | G_KEEPERR);
SvREFCNT_dec(block);
}
MODULE = Scope::OnExit PACKAGE = Scope::OnExit
void
on_scope_exit(block)
CV* block;
PROTOTYPE: &
CODE:
LEAVE;
SvREFCNT_inc(block);
SAVEDESTRUCTOR_X(scope_exit, block);
ENTER;