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]

Reply via email to