Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perlglue.xs

    rffc4df6 rfe7616e  
    318318
    319319void
    320 remove_io_dispatch(fd)
     320add_dispatch(fd, cb)
    321321        int fd
    322         CODE:
    323         owl_select_remove_perl_io_dispatch(fd);
     322        SV * cb
     323        CODE:
     324        owl_select_add_perl_dispatch(fd, SvREFCNT_inc(cb));
     325
     326void
     327remove_dispatch(fd)
     328        int fd
     329        CODE:
     330        owl_select_remove_perl_dispatch(fd);
     331
    324332
    325333AV*
    326334all_filters()
    327335        PREINIT:
    328                 AV *filters;
    329336                const owl_list *fl;
    330                 const owl_filter *f;
    331                 int i;
    332337        CODE:
    333338        {
    334339                fl = owl_global_get_filterlist(&g);
    335                 filters = newAV();
    336                 for(i=0;i<owl_list_get_size(fl);i++) {
    337                         f = owl_list_get_element(fl, i);
    338                         av_push(filters, owl_new_sv(owl_filter_get_name(f)));
    339                 }
    340                 RETVAL = filters;
     340                RETVAL = owl_new_av(fl, (SV*(*)(const void*))owl_filter_to_sv);
    341341                sv_2mortal((SV*)RETVAL);
    342342        }
     
    347347all_styles()
    348348        PREINIT:
    349                 AV *styles;
    350349                owl_list l;
    351                 const char *name;
    352                 int i;
    353350        CODE:
    354351        {
    355352                owl_list_create(&l);
    356353                owl_global_get_style_names(&g, &l);
    357                 styles = newAV();
    358                 for(i=0;i<owl_list_get_size(&l);i++) {
    359                         name = owl_list_get_element(&l, i);
    360                         av_push(styles, owl_new_sv(name));
    361                 }
    362                 RETVAL = styles;
     354                RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
    363355                sv_2mortal((SV*)RETVAL);
    364356        }
     
    372364all_variables()
    373365        PREINIT:
    374                 AV *vars;
    375366                owl_list l;
    376                 const char *name;
    377                 int i;
    378367        CODE:
    379368        {
    380369                owl_list_create(&l);
    381370                owl_dict_get_keys(owl_global_get_vardict(&g), &l);
    382                 vars = newAV();
    383                 for(i=0;i<owl_list_get_size(&l);i++) {
    384                         name = owl_list_get_element(&l, i);
    385                         av_push(vars, owl_new_sv(name));
    386                 }
    387                 RETVAL = vars;
     371                RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
     372                sv_2mortal((SV*)RETVAL);
     373        }
     374        OUTPUT:
     375                RETVAL
     376        CLEANUP:
     377                owl_list_free_all(&l, owl_free);
     378
     379
     380AV*
     381all_keymaps()
     382        PREINIT:
     383                owl_list l;
     384                const owl_keyhandler *kh;
     385        CODE:
     386        {
     387                owl_list_create(&l);
     388                kh = owl_global_get_keyhandler(&g);
     389                owl_keyhandler_get_keymap_names(kh, &l);
     390                RETVAL = owl_new_av(&l, (SV*(*)(const void*))owl_new_sv);
    388391                sv_2mortal((SV*)RETVAL);
    389392        }
     
    501504                                      ival);
    502505
    503 void
    504 add_io_dispatch(fd, mode, cb)
    505         int fd
    506         int mode
    507         SV * cb
    508         CODE:
    509         owl_select_add_perl_io_dispatch(fd, mode, SvREFCNT_inc(cb));
    510 
    511506IV
    512507add_timer(after, interval, cb)
Note: See TracChangeset for help on using the changeset viewer.