[1846] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[PATCH 4/7] Use owl_new_av in exported functions

daemon@ATHENA.MIT.EDU (David Benjamin)
Thu Oct 29 18:23:11 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@lunatique.mit.edu
From: David Benjamin <davidben@MIT.EDU>
To: barnowl-dev@mit.edu
Date: Sat, 24 Oct 2009 13:43:38 -0400
In-Reply-To: <1256406221-22905-4-git-send-email-davidben@mit.edu>

Simplified all_variables, all_filters, and all_styles.

Signed-off-by: David Benjamin <davidben@mit.edu>
---
 perlglue.xs |   30 +++---------------------------
 1 files changed, 3 insertions(+), 27 deletions(-)

diff --git a/perlglue.xs b/perlglue.xs
index c140298..ad13eff 100644
--- a/perlglue.xs
+++ b/perlglue.xs
@@ -333,19 +333,11 @@ remove_dispatch(fd)
 AV*
 all_filters()
 	PREINIT:
-		AV *filters;
 		const owl_list *fl;
-		const owl_filter *f;
-		int i;
 	CODE:
 	{
 		fl = owl_global_get_filterlist(&g);
-		filters = newAV();
-		for(i=0;i<owl_list_get_size(fl);i++) {
-			f = owl_list_get_element(fl, i);
-			av_push(filters, owl_new_sv(owl_filter_get_name(f)));
-		}
-		RETVAL = filters;
+		RETVAL = owl_new_av(fl, (SV*(*)(const void*))owl_filter_to_sv);
 		sv_2mortal((SV*)RETVAL);
 	}
 	OUTPUT:
@@ -354,20 +346,12 @@ all_filters()
 AV*
 all_styles()
 	PREINIT:
-		AV *styles;
 		owl_list l;
-		const char *name;
-		int i;
 	CODE:
 	{
 		owl_list_create(&l);
 		owl_global_get_style_names(&g, &l);
-		styles = newAV();
-		for(i=0;i<owl_list_get_size(&l);i++) {
-			name = owl_list_get_element(&l, i);
-			av_push(styles, owl_new_sv(name));
-		}
-		RETVAL = styles;
+		RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
 		sv_2mortal((SV*)RETVAL);
 	}
 	OUTPUT:
@@ -379,20 +363,12 @@ all_styles()
 AV*
 all_variables()
 	PREINIT:
-		AV *vars;
 		owl_list l;
-		const char *name;
-		int i;
 	CODE:
 	{
 		owl_list_create(&l);
 		owl_dict_get_keys(owl_global_get_vardict(&g), &l);
-		vars = newAV();
-		for(i=0;i<owl_list_get_size(&l);i++) {
-			name = owl_list_get_element(&l, i);
-			av_push(vars, owl_new_sv(name));
-		}
-		RETVAL = vars;
+		RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
 		sv_2mortal((SV*)RETVAL);
 	}
 	OUTPUT:
-- 
1.6.3.3


home help back first fref pref prev next nref lref last post