Revision: 1133
Author: [email protected]
Date: Mon Mar  8 01:49:10 2010
Log: Move sub callers processing into load_perl_callback().
http://code.google.com/p/perl-devel-nytprof/source/detail?r=1133

Modified:
 /trunk/NYTProf.xs

=======================================
--- /trunk/NYTProf.xs   Mon Mar  8 01:49:06 2010
+++ /trunk/NYTProf.xs   Mon Mar  8 01:49:10 2010
@@ -4054,7 +4054,7 @@
     {STR_WITH_LEN("NEW_FID"), "uuuuuuS"},
     {STR_WITH_LEN("SRC_LINE"), "uuS"},
     {STR_WITH_LEN("SUB_INFO"), "uuus"},
-    {STR_WITH_LEN("SUB_CALLERS"), NULL},
+    {STR_WITH_LEN("SUB_CALLERS"), "uuunn..nuss"},
     {STR_WITH_LEN("PID_START"), NULL},
     {STR_WITH_LEN("PID_END"), NULL},
     {STR_WITH_LEN("[string]"), NULL},
@@ -4099,6 +4099,20 @@
             XPUSHs(cb_args[i++]);
             break;
         }
+        case '.':
+        {
+            sv_setnv(cb_args[i], 0.0);
+            XPUSHs(cb_args[i++]);
+            break;
+        }
+        case 'n':
+        {
+            NV n = va_arg(args, NV);
+
+            sv_setnv(cb_args[i], n);
+            XPUSHs(cb_args[i++]);
+            break;
+        }
         case 's':
         {
             SV *sv = va_arg(args, SV *);
@@ -4393,26 +4407,10 @@
                 PERL_UNUSED_VAR(spare_4);

                 if (cb) {
-                    PUSHMARK(SP);
-
-                    i = 0;
- sv_setpvs(cb_args[i], "SUB_CALLERS"); XPUSHs(cb_args[i++]); - sv_setuv(cb_args[i], fid); XPUSHs(cb_args[i++]); - sv_setuv(cb_args[i], line); XPUSHs(cb_args[i++]); - sv_setuv(cb_args[i], count); XPUSHs(cb_args[i++]); - sv_setnv(cb_args[i], incl_time); XPUSHs(cb_args[i++]); - sv_setnv(cb_args[i], excl_time); XPUSHs(cb_args[i++]); - sv_setnv(cb_args[i], 0.0); XPUSHs(cb_args[i++]); - sv_setnv(cb_args[i], 0.0); XPUSHs(cb_args[i++]); - sv_setnv(cb_args[i], reci_time); XPUSHs(cb_args[i++]); - sv_setiv(cb_args[i], rec_depth); XPUSHs(cb_args[i++]); - sv_setsv(cb_args[i], called_subname_sv); XPUSHs(cb_args[i++]); - sv_setsv(cb_args[i], caller_subname_sv); XPUSHs(cb_args[i++]);
-                    assert(i <= C_ARRAY_LENGTH(cb_args));
-
-                    PUTBACK;
-                    call_sv(cb, G_DISCARD);
-                    SPAGAIN;
+                    load_perl_callback(&state, nytp_sub_callers, fid, line,
+ count, incl_time, excl_time, reci_time,
+                                       rec_depth, called_subname_sv,
+                                       caller_subname_sv);
                     break;
                 }

--
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to