[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