[Jifty-commit] r5426 - Runops-Hook/trunk
Jifty commits
jifty-commit at lists.jifty.org
Sat May 10 07:45:29 EDT 2008
Author: nothingmuch
Date: Sat May 10 07:45:29 2008
New Revision: 5426
Modified:
Runops-Hook/trunk/Hook.xs
Log:
integrate Trace.xs code into Hook.xs
Modified: Runops-Hook/trunk/Hook.xs
==============================================================================
--- Runops-Hook/trunk/Hook.xs (original)
+++ Runops-Hook/trunk/Hook.xs Sat May 10 07:45:29 2008
@@ -294,9 +294,20 @@
}
void
+Runops_Hook_load_B (pTHX) {
+ if (!Runops_Hook_loaded_B) {
+ load_module( PERL_LOADMOD_NOIMPORT, newSVpv("B", 0), newSViv(0) );
+ Runops_Hook_fakeop_sv = sv_bless(newRV_noinc(newSVuv((UV)&Runops_Hook_fakeop)), gv_stashpv("B::UNOP", 0));
+ Runops_Hook_loaded_B = 1;
+ }
+}
+
+void
Runops_Hook_set_perl_hook (pTHX_ SV *hook) {
Runops_Hook_clear_perl_hook(aTHX);
+ Runops_Hook_load_B(aTHX);
+
Runops_Hook_perl_hook = hook;
SvREFCNT_inc(Runops_Hook_perl_hook);
@@ -313,14 +324,6 @@
Runops_Hook_threshold = t;
}
-void
-Runops_Hook_load_B (pTHX) {
- if (!Runops_Hook_loaded_B) {
- load_module( PERL_LOADMOD_NOIMPORT, newSVpv("B", 0), newSViv(0) );
- Runops_Hook_fakeop_sv = sv_bless(newRV_noinc(newSVuv((UV)&Runops_Hook_fakeop)), gv_stashpv("B::UNOP", 0));
- Runops_Hook_loaded_B = 1;
- }
-}
MODULE = Runops::Hook PACKAGE = Runops::Hook
@@ -328,7 +331,8 @@
BOOT:
Runops_Hook_clear_hook();
- PL_runops = runops_trace;
+ old_runops = PL_runops;
+ PL_runops = runops_trace;
HV *
counters()
@@ -385,7 +389,6 @@
set_hook(SV *hook)
CODE:
{
- Runops_Hook_load_B(aTHX);
Runops_Hook_set_perl_hook(aTHX_ hook);
}
@@ -411,3 +414,30 @@
Runops_Hook_perl_ignore_ret = 0;
}
+void
+_trace_function( tracer_rv, to_trace_rv)
+ SV * tracer_rv
+ SV * to_trace_rv
+ PROTOTYPE: $$
+ CODE:
+ Runops_Hook_set_perl_hook( aTHX_ tracer_rv );
+
+ /* Call the function to trace */
+ Runops_Hook_enable();
+ call_sv( to_trace_rv, G_VOID | G_DISCARD | G_EVAL | G_KEEPERR );
+ Runops_Hook_disable();
+
+void
+enable_global_tracing(tracer_rv)
+ SV * tracer_rv
+ PROTOTYPE: $
+ CODE:
+ Runops_Hook_set_perl_hook( aTHX_ tracer_rv );
+ Runops_Hook_enable();
+
+void
+disable_global_tracing()
+ PROTOTYPE:
+ CODE:
+ Runops_Hook_disable();
+
More information about the Jifty-commit
mailing list