bugs or features - inlet/outlet order
Winfried Ritsch
ritsch at iem.mhsg.ac.at
Fri Mar 13 00:18:23 CET 1998
[...]
> BUG:
>
> if you accidently make a bang object, instead of a bang
> message then pd "segmentation fault"s on sgis and linux... so the
> symbol bang is identified as object, which isnt one:
>
> Consistency check failed: canvas_setargs
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xfa3a510 in memmove ()
>
>
Possible Solution:
making a bang object (maybe in x_connective.c) x_bang.c:
send a anything in and get a bang out (like [t b])
--- cut here ---
/* -------------------------- bang ------------------------------ */
static t_class *pdbang_class;
typedef struct _pdbang
{
t_object x_obj;
} t_pdbang;
static void *pdbang_new(t_pd *dummy)
{
t_pdbang *x = (t_pdbang *)pd_new(pdbang_class);
outlet_new(&x->x_obj, &s_bang);
newest = &x->x_obj.ob_pd;
return (x);
}
static void pdbang_bang(t_pdbang *x)
{
outlet_bang(x->x_obj.ob_outlet);
}
static void pdbang_int(t_pdbang *x, t_int n)
{
outlet_bang(x->x_obj.ob_outlet);
}
static void pdbang_float(t_pdbang *x, t_float f)
{
outlet_bang(x->x_obj.ob_outlet);
}
void pdbang_setup(void)
{
pdbang_class = class_new(gensym("bang"), (t_newmethod)pdbang_new, 0,
sizeof(t_pdbang), 0, 0);
class_addcreator(pdbang_new, gensym("b"), 0);
class_addbang(pdbang_class, pdbang_bang);
class_addint(pdbang_class, pdbang_int);
class_addfloat(pdbang_class, (t_method)pdbang_float);
}
--- cut here --
I hope I catched millers syntax style ;-)
...also add bang_setup() in x_connective_setup(void).
More information about the Pd-list
mailing list