summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-07-10 17:39:51 -0400
committerJesse Luehrs <doy@tozt.net>2013-07-10 17:39:51 -0400
commit85d4bad1e238a5e902cf390f023744c8e3dc1181 (patch)
tree77e8bd0623d6f34fa52a0adf960178b3864ccf09
parent818958abaf7ad4f86101f88e74caf688b23be9a3 (diff)
downloadexporter-lexical-85d4bad1e238a5e902cf390f023744c8e3dc1181.tar.gz
exporter-lexical-85d4bad1e238a5e902cf390f023744c8e3dc1181.zip
hack around this for now
-rw-r--r--Lexical.xs5
-rw-r--r--lib/Exporter/Lexical.pm6
2 files changed, 11 insertions, 0 deletions
diff --git a/Lexical.xs b/Lexical.xs
index 1ae3923..868c520 100644
--- a/Lexical.xs
+++ b/Lexical.xs
@@ -24,3 +24,8 @@ lexical_import(SV *name, CV *cv)
SvREFCNT_dec(PL_curpad[off]);
PL_curpad[off] = SvREFCNT_inc(cv);
LEAVE;
+
+void
+_lex_stuff(const char *str)
+ CODE:
+ lex_stuff_pv(str, 0);
diff --git a/lib/Exporter/Lexical.pm b/lib/Exporter/Lexical.pm
index d7f0ee3..8eaf1a2 100644
--- a/lib/Exporter/Lexical.pm
+++ b/lib/Exporter/Lexical.pm
@@ -29,6 +29,12 @@ sub import {
for my $export (keys %exports) {
lexical_import($export, $exports{$export});
}
+
+ # XXX there is a bug with lexical_import where the pad entry sequence
+ # numbers are incorrect when used with 'use', so the first statement
+ # after the 'use' statement doesn't see the lexical. hack around this
+ # for now by injecting a dummy statement right after the 'use'.
+ _lex_stuff(";1;");
};
{