diff options
author | Nicholas Clark <nick@ccl4.org> | 2007-01-29 22:40:01 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2007-01-29 22:40:01 +0000 |
commit | 0932863fe57c5e3708f938df0664df51358e68ed (patch) | |
tree | 5ad35a054d0309cb73ab109eb47443bf1d514f04 /op.c | |
parent | 84ac5fd7451a86053a5e645e5d03f47d085d328f (diff) | |
download | perl-0932863fe57c5e3708f938df0664df51358e68ed.tar.gz |
UNITCHECK for XS code. Turned out to be harder that expected.
We need to get the XS BOOT section to run any UNITCHECK blocks for us.
p4raw-id: //depot/perl@30072
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -5634,7 +5634,7 @@ Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename) else s = name; - if (*s != 'B' && *s != 'E' && *s != 'C' && *s != 'I') + if (*s != 'B' && *s != 'E' && *s != 'C' && *s != 'I' && *s != 'U') goto done; if (strEQ(s, "BEGIN")) { @@ -5661,6 +5661,11 @@ Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename) Perl_av_create_and_unshift_one(aTHX_ &PL_checkav, (SV*)cv); GvCV(gv) = 0; /* cv has been hijacked */ } + else if (strEQ(s, "UNITCHECK")) { + /* It's never too late to run a unitcheck block */ + Perl_av_create_and_unshift_one(aTHX_ &PL_unitcheckav, (SV*)cv); + GvCV(gv) = 0; /* cv has been hijacked */ + } else if (strEQ(s, "INIT")) { if (PL_main_start && ckWARN(WARN_VOID)) Perl_warner(aTHX_ packWARN(WARN_VOID), "Too late to run INIT block"); |