Revision: 1136
Author: [email protected]
Date: Mon Mar 8 01:49:29 2010
Log: Move attribute processing into load_perl_callback().
http://code.google.com/p/perl-devel-nytprof/source/detail?r=1136
Modified:
/trunk/NYTProf.xs
=======================================
--- /trunk/NYTProf.xs Mon Mar 8 01:49:19 2010
+++ /trunk/NYTProf.xs Mon Mar 8 01:49:29 2010
@@ -4046,7 +4046,7 @@
static struct perl_callback_info_t callback_info[nytp_tag_max] =
{
{STR_WITH_LEN("[no tag]"), NULL},
- {STR_WITH_LEN("ATTRIBUTE"), NULL},
+ {STR_WITH_LEN("ATTRIBUTE"), "33"},
{STR_WITH_LEN("COMMENT"), NULL},
{STR_WITH_LEN("TIME_BLOCK"), NULL},
{STR_WITH_LEN("TIME_LINE"), NULL},
@@ -4128,6 +4128,22 @@
XPUSHs(sv_2mortal(sv));
break;
}
+ case '3':
+ {
+ char *p = va_arg(args, char *);
+ unsigned long len = va_arg(args, unsigned long);
+ unsigned int utf8 = va_arg(args, unsigned int);
+
+ sv_setpvn(cb_args[i], p, len);
+ if (utf8)
+ SvUTF8_on(cb_args[i]);
+ else
+ SvUTF8_off(cb_args[i]);
+
+ XPUSHs(cb_args[i++]);
+ break;
+ }
+
default:
croak("Bad type '%c' in perl callback", type);
}
@@ -4464,16 +4480,9 @@
key_end = value++;
if (cb) {
- PUSHMARK(SP);
-
- i = 0;
- sv_setpvs(cb_args[i], "ATTRIBUTE");
XPUSHs(cb_args[i++]);
- sv_setpvn(cb_args[i], buffer, key_end - buffer);
XPUSHs(cb_args[i++]);
- sv_setpvn(cb_args[i], value, end - value);
XPUSHs(cb_args[i++]);
-
- PUTBACK;
- call_sv(cb, G_DISCARD);
- SPAGAIN;
+ load_perl_callback(&state, nytp_attribute, buffer,
+ (unsigned long)(key_end - buffer),
0,
+ value, (unsigned long)(end -
value), 0);
} else {
load_attribute_callback(&state, buffer,
(unsigned long)(key_end -
buffer),
--
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]