Revision: 1139
Author: [email protected]
Date: Mon Mar 8 01:49:42 2010
Log: Move time block and time line processing into load_perl_callback().
All Perl callback invocation is now done from load_perl_callback().
http://code.google.com/p/perl-devel-nytprof/source/detail?r=1139
Modified:
/trunk/NYTProf.xs
=======================================
--- /trunk/NYTProf.xs Mon Mar 8 01:49:38 2010
+++ /trunk/NYTProf.xs Mon Mar 8 01:49:42 2010
@@ -4048,8 +4048,8 @@
{STR_WITH_LEN("[no tag]"), NULL},
{STR_WITH_LEN("ATTRIBUTE"), "33"},
{STR_WITH_LEN("COMMENT"), "3"},
- {STR_WITH_LEN("TIME_BLOCK"), NULL},
- {STR_WITH_LEN("TIME_LINE"), NULL},
+ {STR_WITH_LEN("TIME_BLOCK"), "00uuuuu"},
+ {STR_WITH_LEN("TIME_LINE"), "00uuu"},
{STR_WITH_LEN("DISCOUNT"), ""},
{STR_WITH_LEN("NEW_FID"), "uuuuuuS"},
{STR_WITH_LEN("SRC_LINE"), "uuS"},
@@ -4091,6 +4091,14 @@
while ((type = *arglist++)) {
switch(type) {
+ case '0':
+ {
+ /* These really should go, but need a flag day change in
+ documented callback API. */
+ sv_setuv(cb_args[i], 0);
+ XPUSHs(cb_args[i++]);
+ break;
+ }
case 'u':
{
unsigned int u = va_arg(args, unsigned int);
@@ -4307,27 +4315,10 @@
}
if (cb) {
- unsigned int eval_file_num = 0;
- unsigned int eval_line_num = 0;
- PUSHMARK(SP);
-
- XPUSHs(c == NYTP_TAG_TIME_BLOCK ? cb_TIME_BLOCK_tag :
cb_TIME_LINE_tag);
-
- i = 0;
- sv_setiv(cb_args[i], eval_file_num);
XPUSHs(cb_args[i++]);
- sv_setiv(cb_args[i], eval_line_num);
XPUSHs(cb_args[i++]);
- sv_setiv(cb_args[i], ticks);
XPUSHs(cb_args[i++]);
- sv_setiv(cb_args[i], file_num);
XPUSHs(cb_args[i++]);
- sv_setiv(cb_args[i], line_num);
XPUSHs(cb_args[i++]);
-
- if (c == NYTP_TAG_TIME_BLOCK) {
- sv_setiv(cb_args[i], block_line_num);
XPUSHs(cb_args[i++]);
- sv_setiv(cb_args[i], sub_line_num);
XPUSHs(cb_args[i++]);
- }
-
- PUTBACK;
- call_sv(cb, G_DISCARD);
- SPAGAIN;
+ load_perl_callback(&state, c == NYTP_TAG_TIME_BLOCK
+ ? nytp_time_block : nytp_time_line,
+ ticks, file_num, line_num,
+ block_line_num, sub_line_num);
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]