[Jifty-commit] r5385 - Runops-Hook/trunk

Jifty commits jifty-commit at lists.jifty.org
Wed May 7 11:11:56 EDT 2008


Author: nothingmuch
Date: Wed May  7 11:11:56 2008
New Revision: 5385

Modified:
   Runops-Hook/trunk/Hook.xs

Log:
av_make_with_refs

Modified: Runops-Hook/trunk/Hook.xs
==============================================================================
--- Runops-Hook/trunk/Hook.xs	(original)
+++ Runops-Hook/trunk/Hook.xs	Wed May  7 11:11:56 2008
@@ -134,6 +134,20 @@
 	}
 }
 
+static AV *
+av_make_with_refs(pTHX_ SV**from, SV**to) {
+	SV **i;
+	AV *av = newAV();
+
+	av_extend(av, (to - from) / sizeof(SV **));
+
+	for (i = from; i <= to; i++) {
+		av_push(av, newRV_inc(*i));
+	}
+
+	return av;
+}
+
 /* this is a hook that calls to a perl code ref */
 bool
 Runops_Hook_perl (pTHX) {
@@ -184,22 +198,8 @@
 				SV **firstrelem = PL_stack_base + *(PL_markstack_ptr-2) + 1;
 				SV **firstlelem = lastrelem + 1;
 
-				printf("firstlelem=%p, lastlelem=%p, firstrelem=%p, lastrelem=%p\n", firstlelem, lastlelem, firstrelem, lastrelem);
-				printf("nlelem=%d nrelem=%d\n", (lastlelem - firstlelem) / sizeof(SV **) + 1, (lastrelem - firstrelem) + 1);
-
-				SV *lav = newAV();
-				SV *rav = newAV();
-
-				SV **i;
-
-				for (i = firstlelem; i <= lastlelem; i++) {
-					av_push(lav, newRV_inc(*i));
-				}
-
-				for (i = firstrelem; i <= lastrelem; i++) {
-					av_push(rav, newRV_inc(*i));
-				}
-
+				SV *lav = av_make_with_refs(aTHX_ firstlelem, lastlelem);
+				SV *rav = av_make_with_refs(aTHX_ firstrelem, lastrelem);
 
 				SP = ORIGMARK;
 


More information about the Jifty-commit mailing list