Revision: 1108
Author: [email protected]
Date: Mon Mar 8 01:46:51 2010
Log: Abstract writing profile times into NYTP_write_time_block() and
NYTP_write_time_line().
http://code.google.com/p/perl-devel-nytprof/source/detail?r=1108
Modified:
/trunk/FileHandle.h
/trunk/FileHandle.xs
/trunk/NYTProf.xs
=======================================
--- /trunk/FileHandle.h Mon Mar 8 01:46:38 2010
+++ /trunk/FileHandle.h Mon Mar 8 01:46:51 2010
@@ -76,3 +76,9 @@
unsigned int eval_fid, unsigned int
eval_line_num,
unsigned int flags, unsigned int size,
unsigned int mtime, const char *name, I32 len);
+size_t NYTP_write_time_block(NYTP_file ofile, unsigned int elapsed,
+ unsigned int fid, unsigned int line,
+ unsigned int last_block_line,
+ unsigned int last_sub_line);
+size_t NYTP_write_time_line(NYTP_file ofile, unsigned int elapsed,
+ unsigned int fid, unsigned int line);
=======================================
--- /trunk/FileHandle.xs Mon Mar 8 01:46:44 2010
+++ /trunk/FileHandle.xs Mon Mar 8 01:46:51 2010
@@ -787,6 +787,59 @@
return total;
}
+
+static size_t
+write_time_common(NYTP_file ofile, int tag, unsigned int elapsed,
+ unsigned int fid, unsigned int line)
+{
+ size_t total;
+ size_t retval;
+
+ total = retval = output_tag_int(ofile, tag, elapsed);
+ if (retval < 1)
+ return retval;
+
+ total += retval = output_int(ofile, fid);
+ if (retval < 1)
+ return retval;
+
+ total += retval = output_int(ofile, line);
+ if (retval < 1)
+ return retval;
+
+ return total;
+}
+
+size_t
+NYTP_write_time_block(NYTP_file ofile, unsigned int elapsed, unsigned int
fid,
+ unsigned int line, unsigned int last_block_line,
+ unsigned int last_sub_line)
+{
+ size_t total;
+ size_t retval;
+
+ total = retval = write_time_common(ofile, NYTP_TAG_TIME_BLOCK, elapsed,
+ fid, line);
+ if (retval < 1)
+ return retval;
+
+ total += retval = output_int(ofile, last_block_line);
+ if (retval < 1)
+ return retval;
+
+ total += retval = output_int(ofile, last_sub_line);
+ if (retval < 1)
+ return retval;
+
+ return total;
+}
+
+size_t
+NYTP_write_time_line(NYTP_file ofile, unsigned int elapsed, unsigned int
fid,
+ unsigned int line)
+{
+ return write_time_common(ofile, NYTP_TAG_TIME_LINE, elapsed, fid,
line);
+}
MODULE = Devel::NYTProf::FileHandle PACKAGE =
Devel::NYTProf::FileHandle PREFIX = NYTP_
=======================================
--- /trunk/NYTProf.xs Mon Mar 8 01:46:38 2010
+++ /trunk/NYTProf.xs Mon Mar 8 01:46:51 2010
@@ -1378,15 +1378,14 @@
reinit_if_forked(aTHX);
if (last_executed_fid) {
-
- output_tag_int(out, (unsigned char)((profile_blocks)
- ? NYTP_TAG_TIME_BLOCK : NYTP_TAG_TIME_LINE),
elapsed);
- output_int(out, last_executed_fid);
- output_int(out, last_executed_line);
- if (profile_blocks) {
- output_int(out, last_block_line);
- output_int(out, last_sub_line);
- }
+ if (profile_blocks)
+ NYTP_write_time_block(out, elapsed, last_executed_fid,
+ last_executed_line, last_block_line,
+ last_sub_line);
+ else
+ NYTP_write_time_line(out, elapsed, last_executed_fid,
+ last_executed_line);
+
if (trace_level >= 4)
logwarn("Wrote %d:%-4d %2ld ticks (%u, %u)\n",
last_executed_fid,
last_executed_line, elapsed, last_block_line,
last_sub_line);
--
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]