[1846] in BarnOwl Developers
[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