[Jifty-commit] r5596 - in Runops-Trace/trunk: .
Jifty commits
jifty-commit at lists.jifty.org
Sun Jul 27 11:31:08 EDT 2008
Author: nothingmuch
Date: Sun Jul 27 11:31:05 2008
New Revision: 5596
Modified:
Runops-Trace/trunk/Trace.xs
Runops-Trace/trunk/lib/Runops/Trace.pm
Log:
don't do weird dynamic loading shit to get B::UNOP::first
Modified: Runops-Trace/trunk/Trace.xs
==============================================================================
--- Runops-Trace/trunk/Trace.xs (original)
+++ Runops-Trace/trunk/Trace.xs Sun Jul 27 11:31:05 2008
@@ -25,6 +25,9 @@
STATIC int Runops_Trace_perl_ignore_ret = 1;
STATIC int Runops_Trace_loaded_B;
+STATIC CV *Runops_Trace_B_UNOP_first;
+STATIC XSUBADDR_t Runops_Trace_B_UNOP_first_xsub;
+
STATIC GV *Runops_Trace_B_UNOP_stash;
STATIC UNOP Runops_Trace_fakeop;
STATIC SV *Runops_Trace_fakeop_sv;
@@ -95,7 +98,10 @@
PUTBACK;
/* call_pv("B::UNOP::first", G_SCALAR); */
- XS_B__UNOP_first(aTHX);
+ assert(Runops_Trace_loaded_B);
+ assert(Runops_Trace_B_UNOP_first);
+ assert(Runops_Trace_B_UNOP_first_xsub != NULL);
+ Runops_Trace_B_UNOP_first_xsub(aTHX, Runops_Trace_B_UNOP_first);
SPAGAIN;
@@ -325,6 +331,12 @@
Runops_Trace_load_B (pTHX) {
if (!Runops_Trace_loaded_B) {
load_module( PERL_LOADMOD_NOIMPORT, newSVpv("B", 0), (SV *)NULL );
+
+ Runops_Trace_B_UNOP_first = get_cv("B::UNOP::first", TRUE);
+ Runops_Trace_B_UNOP_first_xsub = CvXSUB(Runops_Trace_B_UNOP_first);
+
+ Runops_Trace_fakeop_sv = sv_bless(newRV_noinc(newSVuv((UV)&Runops_Trace_fakeop)), gv_stashpv("B::UNOP", 0));
+
Runops_Trace_loaded_B = 1;
}
}
@@ -336,6 +348,8 @@
croak("the hook must be a code reference");
}
+ Runops_Trace_load_B(aTHX);
+
Runops_Trace_clear_perl_hook(aTHX);
/* Initialize/set the tracing function */
@@ -430,7 +444,6 @@
PROTOTYPES: ENABLE
BOOT:
- Runops_Trace_fakeop_sv = sv_bless(newRV_noinc(newSVuv((UV)&Runops_Trace_fakeop)), gv_stashpv("B::UNOP", 0));
Runops_Trace_clear_hook();
Runops_Trace_old_runops = PL_runops;
PL_runops = runops_trace;
Modified: Runops-Trace/trunk/lib/Runops/Trace.pm
==============================================================================
--- Runops-Trace/trunk/lib/Runops/Trace.pm (original)
+++ Runops-Trace/trunk/lib/Runops/Trace.pm Sun Jul 27 11:31:05 2008
@@ -10,9 +10,6 @@
our $VERSION = '0.11';
-# load XS_B__UNOP_first
-BEGIN { require B };
-
use DynaLoader ();
our @ISA = qw( DynaLoader Exporter );
Runops::Trace->bootstrap($VERSION);
More information about the Jifty-commit
mailing list