From a0f5633e2cd87648b06db926d94e1e317fa0a99f Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jancsika@yahoo.com> Date: Thu, 31 Jul 2014 15:21:06 -0400 Subject: [PATCH] *ported fixes for crasher when sending a "dsp" message to tilde objects. Backported from Pd Vanilla commits [8019b5] and [5769c5] --- pd/src/d_arithmetic.c | 24 +++++++++++------------ pd/src/d_array.c | 15 ++++++++------- pd/src/d_ctl.c | 17 +++++++++------- pd/src/d_delay.c | 6 +++--- pd/src/d_fft.c | 15 ++++++++++----- pd/src/d_filter.c | 26 ++++++++++++++----------- pd/src/d_global.c | 11 +++++++---- pd/src/d_math.c | 45 ++++++++++++++++++++++++++++--------------- pd/src/d_osc.c | 12 +++++++----- pd/src/d_soundfile.c | 6 ++++-- pd/src/d_ugen.c | 2 +- pd/src/g_canvas.c | 3 ++- pd/src/g_io.c | 6 ++++-- pd/src/m_class.c | 3 +++ 14 files changed, 115 insertions(+), 76 deletions(-) diff --git a/pd/src/d_arithmetic.c b/pd/src/d_arithmetic.c index 02671e36c..c79f43470 100644 --- a/pd/src/d_arithmetic.c +++ b/pd/src/d_arithmetic.c @@ -132,14 +132,14 @@ static void plus_setup(void) { plus_class = class_new(gensym("+~"), (t_newmethod)plus_new, 0, sizeof(t_plus), 0, A_GIMME, 0); - class_addmethod(plus_class, (t_method)plus_dsp, gensym("dsp"), 0); + class_addmethod(plus_class, (t_method)plus_dsp, gensym("dsp"), A_CANT, 0); CLASS_MAINSIGNALIN(plus_class, t_plus, x_f); class_sethelpsymbol(plus_class, gensym("sigbinops")); scalarplus_class = class_new(gensym("+~"), 0, 0, sizeof(t_scalarplus), 0, 0); CLASS_MAINSIGNALIN(scalarplus_class, t_scalarplus, x_f); class_addmethod(scalarplus_class, (t_method)scalarplus_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalarplus_class, gensym("sigbinops")); } @@ -263,13 +263,13 @@ static void minus_setup(void) minus_class = class_new(gensym("-~"), (t_newmethod)minus_new, 0, sizeof(t_minus), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(minus_class, t_minus, x_f); - class_addmethod(minus_class, (t_method)minus_dsp, gensym("dsp"), 0); + class_addmethod(minus_class, (t_method)minus_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(minus_class, gensym("sigbinops")); scalarminus_class = class_new(gensym("-~"), 0, 0, sizeof(t_scalarminus), 0, 0); CLASS_MAINSIGNALIN(scalarminus_class, t_scalarminus, x_f); class_addmethod(scalarminus_class, (t_method)scalarminus_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalarminus_class, gensym("sigbinops")); } @@ -394,13 +394,13 @@ static void times_setup(void) times_class = class_new(gensym("*~"), (t_newmethod)times_new, 0, sizeof(t_times), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(times_class, t_times, x_f); - class_addmethod(times_class, (t_method)times_dsp, gensym("dsp"), 0); + class_addmethod(times_class, (t_method)times_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(times_class, gensym("sigbinops")); scalartimes_class = class_new(gensym("*~"), 0, 0, sizeof(t_scalartimes), 0, 0); CLASS_MAINSIGNALIN(scalartimes_class, t_scalartimes, x_f); class_addmethod(scalartimes_class, (t_method)scalartimes_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalartimes_class, gensym("sigbinops")); } @@ -536,13 +536,13 @@ static void over_setup(void) over_class = class_new(gensym("/~"), (t_newmethod)over_new, 0, sizeof(t_over), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(over_class, t_over, x_f); - class_addmethod(over_class, (t_method)over_dsp, gensym("dsp"), 0); + class_addmethod(over_class, (t_method)over_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(over_class, gensym("sigbinops")); scalarover_class = class_new(gensym("/~"), 0, 0, sizeof(t_scalarover), 0, 0); CLASS_MAINSIGNALIN(scalarover_class, t_scalarover, x_f); class_addmethod(scalarover_class, (t_method)scalarover_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalarover_class, gensym("sigbinops")); } @@ -678,13 +678,13 @@ static void max_setup(void) max_class = class_new(gensym("max~"), (t_newmethod)max_new, 0, sizeof(t_max), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(max_class, t_max, x_f); - class_addmethod(max_class, (t_method)max_dsp, gensym("dsp"), 0); + class_addmethod(max_class, (t_method)max_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(max_class, gensym("sigbinops")); scalarmax_class = class_new(gensym("max~"), 0, 0, sizeof(t_scalarmax), 0, 0); CLASS_MAINSIGNALIN(scalarmax_class, t_scalarmax, x_f); class_addmethod(scalarmax_class, (t_method)scalarmax_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalarmax_class, gensym("sigbinops")); } @@ -820,13 +820,13 @@ static void min_setup(void) min_class = class_new(gensym("min~"), (t_newmethod)min_new, 0, sizeof(t_min), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(min_class, t_min, x_f); - class_addmethod(min_class, (t_method)min_dsp, gensym("dsp"), 0); + class_addmethod(min_class, (t_method)min_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(min_class, gensym("sigbinops")); scalarmin_class = class_new(gensym("min~"), 0, 0, sizeof(t_scalarmin), 0, 0); CLASS_MAINSIGNALIN(scalarmin_class, t_scalarmin, x_f); class_addmethod(scalarmin_class, (t_method)scalarmin_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(scalarmin_class, gensym("sigbinops")); } diff --git a/pd/src/d_array.c b/pd/src/d_array.c index 11a55b5de..b026669a7 100644 --- a/pd/src/d_array.c +++ b/pd/src/d_array.c @@ -125,7 +125,7 @@ static void tabwrite_tilde_setup(void) sizeof(t_tabwrite_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabwrite_tilde_class, t_tabwrite_tilde, x_f); class_addmethod(tabwrite_tilde_class, (t_method)tabwrite_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(tabwrite_tilde_class, (t_method)tabwrite_tilde_set, gensym("set"), A_SYMBOL, 0); class_addmethod(tabwrite_tilde_class, (t_method)tabwrite_tilde_stop, @@ -258,7 +258,7 @@ static void tabplay_tilde_setup(void) (t_newmethod)tabplay_tilde_new, (t_method)tabplay_tilde_free, sizeof(t_tabplay_tilde), 0, A_DEFSYM, 0); class_addmethod(tabplay_tilde_class, (t_method)tabplay_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(tabplay_tilde_class, (t_method)tabplay_tilde_stop, gensym("stop"), 0); class_addmethod(tabplay_tilde_class, (t_method)tabplay_tilde_set, @@ -357,7 +357,7 @@ static void tabread_tilde_setup(void) sizeof(t_tabread_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabread_tilde_class, t_tabread_tilde, x_f); class_addmethod(tabread_tilde_class, (t_method)tabread_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(tabread_tilde_class, (t_method)tabread_tilde_set, gensym("set"), A_SYMBOL, 0); } @@ -488,7 +488,7 @@ static void tabread4_tilde_setup(void) sizeof(t_tabread4_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabread4_tilde_class, t_tabread4_tilde, x_f); class_addmethod(tabread4_tilde_class, (t_method)tabread4_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(tabread4_tilde_class, (t_method)tabread4_tilde_set, gensym("set"), A_SYMBOL, 0); } @@ -678,7 +678,7 @@ static void tabosc4_tilde_setup(void) sizeof(t_tabosc4_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabosc4_tilde_class, t_tabosc4_tilde, x_f); class_addmethod(tabosc4_tilde_class, (t_method)tabosc4_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(tabosc4_tilde_class, (t_method)tabosc4_tilde_set, gensym("set"), A_SYMBOL, 0); class_addmethod(tabosc4_tilde_class, (t_method)tabosc4_tilde_ft1, @@ -769,7 +769,8 @@ static void tabsend_setup(void) tabsend_class = class_new(gensym("tabsend~"), (t_newmethod)tabsend_new, 0, sizeof(t_tabsend), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(tabsend_class, t_tabsend, x_f); - class_addmethod(tabsend_class, (t_method)tabsend_dsp, gensym("dsp"), 0); + class_addmethod(tabsend_class, (t_method)tabsend_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------ tabreceive~ ------------------------- */ @@ -836,7 +837,7 @@ static void tabreceive_setup(void) (t_newmethod)tabreceive_new, 0, sizeof(t_tabreceive), 0, A_DEFSYM, 0); class_addmethod(tabreceive_class, (t_method)tabreceive_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ---------- tabread: control, non-interpolating ------------------------ */ diff --git a/pd/src/d_ctl.c b/pd/src/d_ctl.c index 92467abe0..bbc2042ab 100644 --- a/pd/src/d_ctl.c +++ b/pd/src/d_ctl.c @@ -79,7 +79,8 @@ static void sig_tilde_setup(void) sig_tilde_class = class_new(gensym("sig~"), (t_newmethod)sig_tilde_new, 0, sizeof(t_sig), 0, A_DEFFLOAT, 0); class_addfloat(sig_tilde_class, (t_method)sig_tilde_float); - class_addmethod(sig_tilde_class, (t_method)sig_tilde_dsp, gensym("dsp"), 0); + class_addmethod(sig_tilde_class, (t_method)sig_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* -------------------------- line~ ------------------------------ */ @@ -220,7 +221,7 @@ static void line_tilde_setup(void) sizeof(t_line), 0, 0); class_addfloat(line_tilde_class, (t_method)line_tilde_float); class_addmethod(line_tilde_class, (t_method)line_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(line_tilde_class, (t_method)line_tilde_stop, gensym("stop"), 0); } @@ -404,7 +405,7 @@ static void vline_tilde_setup(void) (t_method)vline_tilde_stop, sizeof(t_vline), 0, 0); class_addfloat(vline_tilde_class, (t_method)vline_tilde_float); class_addmethod(vline_tilde_class, (t_method)vline_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(vline_tilde_class, (t_method)vline_tilde_stop, gensym("stop"), 0); } @@ -458,7 +459,7 @@ static void snapshot_tilde_setup(void) sizeof(t_snapshot), 0, 0); CLASS_MAINSIGNALIN(snapshot_tilde_class, t_snapshot, x_f); class_addmethod(snapshot_tilde_class, (t_method)snapshot_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(snapshot_tilde_class, (t_method)snapshot_tilde_set, gensym("set"), A_DEFFLOAT, 0); class_addbang(snapshot_tilde_class, snapshot_tilde_bang); @@ -545,7 +546,8 @@ static void vsnapshot_tilde_setup(void) vsnapshot_tilde_new, (t_method)vsnapshot_tilde_ff, sizeof(t_vsnapshot), 0, 0); CLASS_MAINSIGNALIN(vsnapshot_tilde_class, t_vsnapshot, x_f); - class_addmethod(vsnapshot_tilde_class, (t_method)vsnapshot_tilde_dsp, gensym("dsp"), 0); + class_addmethod(vsnapshot_tilde_class, (t_method)vsnapshot_tilde_dsp, + gensym("dsp"), A_CANT, 0); class_addbang(vsnapshot_tilde_class, vsnapshot_tilde_bang); } @@ -683,7 +685,8 @@ void env_tilde_setup(void ) env_tilde_class = class_new(gensym("env~"), (t_newmethod)env_tilde_new, (t_method)env_tilde_ff, sizeof(t_sigenv), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(env_tilde_class, t_sigenv, x_f); - class_addmethod(env_tilde_class, (t_method)env_tilde_dsp, gensym("dsp"), 0); + class_addmethod(env_tilde_class, (t_method)env_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* --------------------- threshold~ ----------------------------- */ @@ -818,7 +821,7 @@ static void threshold_tilde_setup( void) class_addmethod(threshold_tilde_class, (t_method)threshold_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(threshold_tilde_class, (t_method)threshold_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ------------------------ global setup routine ------------------------- */ diff --git a/pd/src/d_delay.c b/pd/src/d_delay.c index ee621fbde..93ed90e8a 100644 --- a/pd/src/d_delay.c +++ b/pd/src/d_delay.c @@ -134,7 +134,7 @@ static void sigdelwrite_setup(void) sizeof(t_sigdelwrite), 0, A_DEFSYM, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(sigdelwrite_class, t_sigdelwrite, x_f); class_addmethod(sigdelwrite_class, (t_method)sigdelwrite_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addmethod(sigdelwrite_class, (t_method)sigdelwrite_clear, gensym("clear"), 0); } @@ -228,7 +228,7 @@ static void sigdelread_setup(void) (t_newmethod)sigdelread_new, 0, sizeof(t_sigdelread), 0, A_DEFSYM, A_DEFFLOAT, 0); class_addmethod(sigdelread_class, (t_method)sigdelread_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); class_addfloat(sigdelread_class, (t_method)sigdelread_float); } @@ -318,7 +318,7 @@ static void sigvd_setup(void) { sigvd_class = class_new(gensym("vd~"), (t_newmethod)sigvd_new, 0, sizeof(t_sigvd), 0, A_DEFSYM, 0); - class_addmethod(sigvd_class, (t_method)sigvd_dsp, gensym("dsp"), 0); + class_addmethod(sigvd_class, (t_method)sigvd_dsp, gensym("dsp"), A_CANT, 0); CLASS_MAINSIGNALIN(sigvd_class, t_sigvd, x_f); } diff --git a/pd/src/d_fft.c b/pd/src/d_fft.c index 464f48d10..f4c92c6d3 100644 --- a/pd/src/d_fft.c +++ b/pd/src/d_fft.c @@ -126,12 +126,14 @@ static void sigfft_setup(void) sigfft_class = class_new(gensym("fft~"), sigfft_new, 0, sizeof(t_sigfft), 0, 0); CLASS_MAINSIGNALIN(sigfft_class, t_sigfft, x_f); - class_addmethod(sigfft_class, (t_method)sigfft_dsp, gensym("dsp"), 0); + class_addmethod(sigfft_class, (t_method)sigfft_dsp, gensym("dsp"), + A_CANT, 0); sigifft_class = class_new(gensym("ifft~"), sigifft_new, 0, sizeof(t_sigfft), 0, 0); CLASS_MAINSIGNALIN(sigifft_class, t_sigfft, x_f); - class_addmethod(sigifft_class, (t_method)sigifft_dsp, gensym("dsp"), 0); + class_addmethod(sigifft_class, (t_method)sigifft_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(sigifft_class, gensym("fft~")); } @@ -188,7 +190,8 @@ static void sigrfft_setup(void) sigrfft_class = class_new(gensym("rfft~"), sigrfft_new, 0, sizeof(t_sigrfft), 0, 0); CLASS_MAINSIGNALIN(sigrfft_class, t_sigrfft, x_f); - class_addmethod(sigrfft_class, (t_method)sigrfft_dsp, gensym("dsp"), 0); + class_addmethod(sigrfft_class, (t_method)sigrfft_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(sigrfft_class, gensym("fft~")); } @@ -248,7 +251,8 @@ static void sigrifft_setup(void) sigrifft_class = class_new(gensym("rifft~"), sigrifft_new, 0, sizeof(t_sigrifft), 0, 0); CLASS_MAINSIGNALIN(sigrifft_class, t_sigrifft, x_f); - class_addmethod(sigrifft_class, (t_method)sigrifft_dsp, gensym("dsp"), 0); + class_addmethod(sigrifft_class, (t_method)sigrifft_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(sigrifft_class, gensym("fft~")); } @@ -336,7 +340,8 @@ static void sigframp_setup(void) sigframp_class = class_new(gensym("framp~"), sigframp_new, 0, sizeof(t_sigframp), 0, 0); CLASS_MAINSIGNALIN(sigframp_class, t_sigframp, x_f); - class_addmethod(sigframp_class, (t_method)sigframp_dsp, gensym("dsp"), 0); + class_addmethod(sigframp_class, (t_method)sigframp_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------ global setup routine ------------------------- */ diff --git a/pd/src/d_filter.c b/pd/src/d_filter.c index 18b3b145d..618f2ac30 100644 --- a/pd/src/d_filter.c +++ b/pd/src/d_filter.c @@ -102,7 +102,8 @@ void sighip_setup(void) sighip_class = class_new(gensym("hip~"), (t_newmethod)sighip_new, 0, sizeof(t_sighip), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(sighip_class, t_sighip, x_f); - class_addmethod(sighip_class, (t_method)sighip_dsp, gensym("dsp"), 0); + class_addmethod(sighip_class, (t_method)sighip_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(sighip_class, (t_method)sighip_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(sighip_class, (t_method)sighip_clear, gensym("clear"), 0); @@ -192,7 +193,8 @@ void siglop_setup(void) siglop_class = class_new(gensym("lop~"), (t_newmethod)siglop_new, 0, sizeof(t_siglop), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(siglop_class, t_siglop, x_f); - class_addmethod(siglop_class, (t_method)siglop_dsp, gensym("dsp"), 0); + class_addmethod(siglop_class, (t_method)siglop_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(siglop_class, (t_method)siglop_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(siglop_class, (t_method)siglop_clear, gensym("clear"), 0); @@ -326,7 +328,8 @@ void sigbp_setup(void) sigbp_class = class_new(gensym("bp~"), (t_newmethod)sigbp_new, 0, sizeof(t_sigbp), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(sigbp_class, t_sigbp, x_f); - class_addmethod(sigbp_class, (t_method)sigbp_dsp, gensym("dsp"), 0); + class_addmethod(sigbp_class, (t_method)sigbp_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(sigbp_class, (t_method)sigbp_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(sigbp_class, (t_method)sigbp_ft2, @@ -452,7 +455,8 @@ void sigbiquad_setup(void) sigbiquad_class = class_new(gensym("biquad~"), (t_newmethod)sigbiquad_new, 0, sizeof(t_sigbiquad), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(sigbiquad_class, t_sigbiquad, x_f); - class_addmethod(sigbiquad_class, (t_method)sigbiquad_dsp, gensym("dsp"), 0); + class_addmethod(sigbiquad_class, (t_method)sigbiquad_dsp, gensym("dsp"), + A_CANT, 0); class_addlist(sigbiquad_class, sigbiquad_list); class_addmethod(sigbiquad_class, (t_method)sigbiquad_set, gensym("set"), A_GIMME, 0); @@ -534,7 +538,7 @@ void sigsamphold_setup(void) class_addmethod(sigsamphold_class, (t_method)sigsamphold_reset, gensym("reset"), A_GIMME, 0); class_addmethod(sigsamphold_class, (t_method)sigsamphold_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ---------------- rpole~ - real one-pole filter (raw) ----------------- */ @@ -607,7 +611,7 @@ void sigrpole_setup(void) class_addmethod(sigrpole_class, (t_method)sigrpole_clear, gensym("clear"), 0); class_addmethod(sigrpole_class, (t_method)sigrpole_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ---------------- rzero~ - real one-zero filter (raw) ----------------- */ @@ -679,7 +683,7 @@ void sigrzero_setup(void) class_addmethod(sigrzero_class, (t_method)sigrzero_clear, gensym("clear"), 0); class_addmethod(sigrzero_class, (t_method)sigrzero_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ---------- rzero_rev~ - real, reverse one-zero filter (raw) ------------ */ @@ -752,7 +756,7 @@ void sigrzero_rev_setup(void) class_addmethod(sigrzero_rev_class, (t_method)sigrzero_rev_clear, gensym("clear"), 0); class_addmethod(sigrzero_rev_class, (t_method)sigrzero_rev_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* -------------- cpole~ - complex one-pole filter (raw) --------------- */ @@ -845,7 +849,7 @@ void sigcpole_setup(void) class_addmethod(sigcpole_class, (t_method)sigcpole_clear, gensym("clear"), 0); class_addmethod(sigcpole_class, (t_method)sigcpole_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* -------------- czero~ - complex one-pole filter (raw) --------------- */ @@ -935,7 +939,7 @@ void sigczero_setup(void) class_addmethod(sigczero_class, (t_method)sigczero_clear, gensym("clear"), 0); class_addmethod(sigczero_class, (t_method)sigczero_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* -------------- czero_rev~ - complex one-pole filter (raw) --------------- */ @@ -1027,7 +1031,7 @@ void sigczero_rev_setup(void) class_addmethod(sigczero_rev_class, (t_method)sigczero_rev_clear, gensym("clear"), 0); class_addmethod(sigczero_rev_class, (t_method)sigczero_rev_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ------------------------ setup routine ------------------------- */ diff --git a/pd/src/d_global.c b/pd/src/d_global.c index b9a7cae10..af6843aaf 100644 --- a/pd/src/d_global.c +++ b/pd/src/d_global.c @@ -66,7 +66,8 @@ static void sigsend_setup(void) (t_method)sigsend_free, sizeof(t_sigsend), 0, A_DEFSYM, 0); class_addcreator((t_newmethod)sigsend_new, gensym("s~"), A_DEFSYM, 0); CLASS_MAINSIGNALIN(sigsend_class, t_sigsend, x_f); - class_addmethod(sigsend_class, (t_method)sigsend_dsp, gensym("dsp"), 0); + class_addmethod(sigsend_class, (t_method)sigsend_dsp, gensym("dsp"), + A_CANT, 0); } /* ----------------------------- receive~ ----------------------------- */ @@ -182,7 +183,7 @@ static void sigreceive_setup(void) class_addmethod(sigreceive_class, (t_method)sigreceive_set, gensym("set"), A_SYMBOL, 0); class_addmethod(sigreceive_class, (t_method)sigreceive_dsp, gensym("dsp"), - 0); + A_CANT, 0); class_sethelpsymbol(sigreceive_class, gensym("send~")); } @@ -257,7 +258,8 @@ static void sigcatch_setup(void) { sigcatch_class = class_new(gensym("catch~"), (t_newmethod)sigcatch_new, (t_method)sigcatch_free, sizeof(t_sigcatch), CLASS_NOINLET, A_DEFSYM, 0); - class_addmethod(sigcatch_class, (t_method)sigcatch_dsp, gensym("dsp"), 0); + class_addmethod(sigcatch_class, (t_method)sigcatch_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(sigcatch_class, gensym("throw~")); } @@ -343,7 +345,8 @@ static void sigthrow_setup(void) class_addmethod(sigthrow_class, (t_method)sigthrow_set, gensym("set"), A_SYMBOL, 0); CLASS_MAINSIGNALIN(sigthrow_class, t_sigthrow, x_f); - class_addmethod(sigthrow_class, (t_method)sigthrow_dsp, gensym("dsp"), 0); + class_addmethod(sigthrow_class, (t_method)sigthrow_dsp, gensym("dsp"), + A_CANT, 0); } /* ----------------------- global setup routine ---------------- */ diff --git a/pd/src/d_math.c b/pd/src/d_math.c index 387e0752a..3c75a9465 100644 --- a/pd/src/d_math.c +++ b/pd/src/d_math.c @@ -59,7 +59,7 @@ static void clip_setup(void) clip_class = class_new(gensym("clip~"), (t_newmethod)clip_new, 0, sizeof(t_clip), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(clip_class, t_clip, x_f); - class_addmethod(clip_class, (t_method)clip_dsp, gensym("dsp"), 0); + class_addmethod(clip_class, (t_method)clip_dsp, gensym("dsp"), A_CANT, 0); } /* sigrsqrt - reciprocal square root good to 8 mantissa bits */ @@ -171,7 +171,8 @@ void sigrsqrt_setup(void) /* an old name for it: */ class_addcreator(sigrsqrt_new, gensym("q8_rsqrt~"), 0); CLASS_MAINSIGNALIN(sigrsqrt_class, t_sigrsqrt, x_f); - class_addmethod(sigrsqrt_class, (t_method)sigrsqrt_dsp, gensym("dsp"), 0); + class_addmethod(sigrsqrt_class, (t_method)sigrsqrt_dsp, gensym("dsp"), + A_CANT, 0); } @@ -223,7 +224,8 @@ void sigsqrt_setup(void) sizeof(t_sigsqrt), 0, 0); class_addcreator(sigsqrt_new, gensym("q8_sqrt~"), 0); /* old name */ CLASS_MAINSIGNALIN(sigsqrt_class, t_sigsqrt, x_f); - class_addmethod(sigsqrt_class, (t_method)sigsqrt_dsp, gensym("dsp"), 0); + class_addmethod(sigsqrt_class, (t_method)sigsqrt_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------------ wrap~ -------------------------- */ @@ -268,7 +270,8 @@ void sigwrap_setup(void) sigwrap_class = class_new(gensym("wrap~"), (t_newmethod)sigwrap_new, 0, sizeof(t_sigwrap), 0, 0); CLASS_MAINSIGNALIN(sigwrap_class, t_sigwrap, x_f); - class_addmethod(sigwrap_class, (t_method)sigwrap_dsp, gensym("dsp"), 0); + class_addmethod(sigwrap_class, (t_method)sigwrap_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------------ mtof_tilde~ -------------------------- */ @@ -316,7 +319,8 @@ void mtof_tilde_setup(void) mtof_tilde_class = class_new(gensym("mtof~"), (t_newmethod)mtof_tilde_new, 0, sizeof(t_mtof_tilde), 0, 0); CLASS_MAINSIGNALIN(mtof_tilde_class, t_mtof_tilde, x_f); - class_addmethod(mtof_tilde_class, (t_method)mtof_tilde_dsp, gensym("dsp"), 0); + class_addmethod(mtof_tilde_class, (t_method)mtof_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------------ ftom_tilde~ -------------------------- */ @@ -359,7 +363,8 @@ void ftom_tilde_setup(void) ftom_tilde_class = class_new(gensym("ftom~"), (t_newmethod)ftom_tilde_new, 0, sizeof(t_ftom_tilde), 0, 0); CLASS_MAINSIGNALIN(ftom_tilde_class, t_ftom_tilde, x_f); - class_addmethod(ftom_tilde_class, (t_method)ftom_tilde_dsp, gensym("dsp"), 0); + class_addmethod(ftom_tilde_class, (t_method)ftom_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------------ dbtorms~ -------------------------- */ @@ -408,7 +413,8 @@ void dbtorms_tilde_setup(void) dbtorms_tilde_class = class_new(gensym("dbtorms~"), (t_newmethod)dbtorms_tilde_new, 0, sizeof(t_dbtorms_tilde), 0, 0); CLASS_MAINSIGNALIN(dbtorms_tilde_class, t_dbtorms_tilde, x_f); - class_addmethod(dbtorms_tilde_class, (t_method)dbtorms_tilde_dsp, gensym("dsp"), 0); + class_addmethod(dbtorms_tilde_class, (t_method)dbtorms_tilde_dsp, + gensym("dsp"), A_CANT, 0); } /* ------------------------------ rmstodb~ -------------------------- */ @@ -456,7 +462,8 @@ void rmstodb_tilde_setup(void) rmstodb_tilde_class = class_new(gensym("rmstodb~"), (t_newmethod)rmstodb_tilde_new, 0, sizeof(t_rmstodb_tilde), 0, 0); CLASS_MAINSIGNALIN(rmstodb_tilde_class, t_rmstodb_tilde, x_f); - class_addmethod(rmstodb_tilde_class, (t_method)rmstodb_tilde_dsp, gensym("dsp"), 0); + class_addmethod(rmstodb_tilde_class, (t_method)rmstodb_tilde_dsp, + gensym("dsp"), A_CANT, 0); } /* ------------------------------ dbtopow~ -------------------------- */ @@ -505,7 +512,8 @@ void dbtopow_tilde_setup(void) dbtopow_tilde_class = class_new(gensym("dbtopow~"), (t_newmethod)dbtopow_tilde_new, 0, sizeof(t_dbtopow_tilde), 0, 0); CLASS_MAINSIGNALIN(dbtopow_tilde_class, t_dbtopow_tilde, x_f); - class_addmethod(dbtopow_tilde_class, (t_method)dbtopow_tilde_dsp, gensym("dsp"), 0); + class_addmethod(dbtopow_tilde_class, (t_method)dbtopow_tilde_dsp, + gensym("dsp"), A_CANT, 0); } /* ------------------------------ powtodb~ -------------------------- */ @@ -553,7 +561,8 @@ void powtodb_tilde_setup(void) powtodb_tilde_class = class_new(gensym("powtodb~"), (t_newmethod)powtodb_tilde_new, 0, sizeof(t_powtodb_tilde), 0, 0); CLASS_MAINSIGNALIN(powtodb_tilde_class, t_powtodb_tilde, x_f); - class_addmethod(powtodb_tilde_class, (t_method)powtodb_tilde_dsp, gensym("dsp"), 0); + class_addmethod(powtodb_tilde_class, (t_method)powtodb_tilde_dsp, + gensym("dsp"), A_CANT, 0); } /* ----------------------------- pow ----------------------------- */ @@ -647,12 +656,13 @@ static void pow_tilde_setup(void) pow_tilde_class = class_new(gensym("pow~"), (t_newmethod)pow_tilde_new, 0, sizeof(t_pow_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(pow_tilde_class, t_pow_tilde, x_f); - class_addmethod(pow_tilde_class, (t_method)pow_tilde_dsp, gensym("dsp"), 0); + class_addmethod(pow_tilde_class, (t_method)pow_tilde_dsp, gensym("dsp"), + A_CANT, 0); scalarpow_tilde_class = class_new(gensym("pow~"), 0, 0, sizeof(t_scalarpow_tilde), 0, 0); CLASS_MAINSIGNALIN(scalarpow_tilde_class, t_scalarpow_tilde, x_f); class_addmethod(scalarpow_tilde_class, (t_method)scalarpow_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ----------------------------- exp ----------------------------- */ @@ -692,7 +702,8 @@ static void exp_tilde_setup(void) exp_tilde_class = class_new(gensym("exp~"), (t_newmethod)exp_tilde_new, 0, sizeof(t_exp_tilde), 0, 0); CLASS_MAINSIGNALIN(exp_tilde_class, t_exp_tilde, x_f); - class_addmethod(exp_tilde_class, (t_method)exp_tilde_dsp, gensym("dsp"), 0); + class_addmethod(exp_tilde_class, (t_method)exp_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* ----------------------------- log ----------------------------- */ @@ -791,13 +802,14 @@ static void log_tilde_setup(void) log_tilde_class = class_new(gensym("log~"), (t_newmethod)log_tilde_new, 0, sizeof(t_log_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(log_tilde_class, t_log_tilde, x_f); - class_addmethod(log_tilde_class, (t_method)log_tilde_dsp, gensym("dsp"), 0); + class_addmethod(log_tilde_class, (t_method)log_tilde_dsp, gensym("dsp"), + A_CANT, 0); scalarlog_tilde_class = class_new(gensym("log~"), 0, 0, sizeof(t_scalarlog_tilde), 0, 0); CLASS_MAINSIGNALIN(scalarlog_tilde_class, t_scalarlog_tilde, x_f); class_addmethod(scalarlog_tilde_class, (t_method)scalarlog_tilde_dsp, - gensym("dsp"), 0); + gensym("dsp"), A_CANT, 0); } /* ----------------------------- abs ----------------------------- */ @@ -840,7 +852,8 @@ static void abs_tilde_setup(void) abs_tilde_class = class_new(gensym("abs~"), (t_newmethod)abs_tilde_new, 0, sizeof(t_abs_tilde), 0, 0); CLASS_MAINSIGNALIN(abs_tilde_class, t_abs_tilde, x_f); - class_addmethod(abs_tilde_class, (t_method)abs_tilde_dsp, gensym("dsp"), 0); + class_addmethod(abs_tilde_class, (t_method)abs_tilde_dsp, gensym("dsp"), + A_CANT, 0); } /* ------------------------ global setup routine ------------------------- */ diff --git a/pd/src/d_osc.c b/pd/src/d_osc.c index 8336dd344..100167e33 100644 --- a/pd/src/d_osc.c +++ b/pd/src/d_osc.c @@ -123,7 +123,8 @@ static void phasor_setup(void) phasor_class = class_new(gensym("phasor~"), (t_newmethod)phasor_new, 0, sizeof(t_phasor), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(phasor_class, t_phasor, x_f); - class_addmethod(phasor_class, (t_method)phasor_dsp, gensym("dsp"), 0); + class_addmethod(phasor_class, (t_method)phasor_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(phasor_class, (t_method)phasor_ft1, gensym("ft1"), A_FLOAT, 0); } @@ -230,7 +231,7 @@ static void cos_setup(void) cos_class = class_new(gensym("cos~"), (t_newmethod)cos_new, 0, sizeof(t_cos), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(cos_class, t_cos, x_f); - class_addmethod(cos_class, (t_method)cos_dsp, gensym("dsp"), 0); + class_addmethod(cos_class, (t_method)cos_dsp, gensym("dsp"), A_CANT, 0); cos_maketable(); } @@ -330,7 +331,7 @@ static void osc_setup(void) osc_class = class_new(gensym("osc~"), (t_newmethod)osc_new, 0, sizeof(t_osc), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(osc_class, t_osc, x_f); - class_addmethod(osc_class, (t_method)osc_dsp, gensym("dsp"), 0); + class_addmethod(osc_class, (t_method)osc_dsp, gensym("dsp"), A_CANT, 0); class_addmethod(osc_class, (t_method)osc_ft1, gensym("ft1"), A_FLOAT, 0); cos_maketable(); @@ -454,7 +455,8 @@ void sigvcf_setup(void) sigvcf_class = class_new(gensym("vcf~"), (t_newmethod)sigvcf_new, 0, sizeof(t_sigvcf), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(sigvcf_class, t_sigvcf, x_f); - class_addmethod(sigvcf_class, (t_method)sigvcf_dsp, gensym("dsp"), 0); + class_addmethod(sigvcf_class, (t_method)sigvcf_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(sigvcf_class, (t_method)sigvcf_ft1, gensym("ft1"), A_FLOAT, 0); } @@ -502,7 +504,7 @@ static void noise_setup(void) { noise_class = class_new(gensym("noise~"), (t_newmethod)noise_new, 0, sizeof(t_noise), 0, 0); - class_addmethod(noise_class, (t_method)noise_dsp, gensym("dsp"), 0); + class_addmethod(noise_class, (t_method)noise_dsp, gensym("dsp"), A_CANT, 0); } diff --git a/pd/src/d_soundfile.c b/pd/src/d_soundfile.c index 780952c91..53e71f2a6 100644 --- a/pd/src/d_soundfile.c +++ b/pd/src/d_soundfile.c @@ -2129,7 +2129,8 @@ static void readsf_setup(void) class_addfloat(readsf_class, (t_method)readsf_float); class_addmethod(readsf_class, (t_method)readsf_start, gensym("start"), 0); class_addmethod(readsf_class, (t_method)readsf_stop, gensym("stop"), 0); - class_addmethod(readsf_class, (t_method)readsf_dsp, gensym("dsp"), 0); + class_addmethod(readsf_class, (t_method)readsf_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(readsf_class, (t_method)readsf_open, gensym("open"), A_GIMME, 0); class_addmethod(readsf_class, (t_method)readsf_print, gensym("print"), 0); @@ -2612,7 +2613,8 @@ static void writesf_setup(void) (t_method)writesf_free, sizeof(t_writesf), 0, A_DEFFLOAT, A_DEFFLOAT, 0); class_addmethod(writesf_class, (t_method)writesf_start, gensym("start"), 0); class_addmethod(writesf_class, (t_method)writesf_stop, gensym("stop"), 0); - class_addmethod(writesf_class, (t_method)writesf_dsp, gensym("dsp"), 0); + class_addmethod(writesf_class, (t_method)writesf_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(writesf_class, (t_method)writesf_open, gensym("open"), A_GIMME, 0); class_addmethod(writesf_class, (t_method)writesf_print, gensym("print"), 0); diff --git a/pd/src/d_ugen.c b/pd/src/d_ugen.c index fe49b7dee..c2b600a0d 100644 --- a/pd/src/d_ugen.c +++ b/pd/src/d_ugen.c @@ -286,7 +286,7 @@ void block_tilde_setup(void) A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); class_addmethod(block_class, (t_method)block_set, gensym("set"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); - class_addmethod(block_class, (t_method)block_dsp, gensym("dsp"), 0); + class_addmethod(block_class, (t_method)block_dsp, gensym("dsp"), A_CANT, 0); class_addfloat(block_class, block_float); class_addbang(block_class, block_bang); } diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index 574870a68..58927c336 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -2322,7 +2322,8 @@ void g_canvas_setup(void) class_addmethod(canvas_class, (t_method)canvas_click, gensym("click"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0); - class_addmethod(canvas_class, (t_method)canvas_dsp, gensym("dsp"), 0); + class_addmethod(canvas_class, (t_method)canvas_dsp, gensym("dsp"), + A_CANT, 0); class_addmethod(canvas_class, (t_method)canvas_rename_method, gensym("rename"), A_GIMME, 0); class_addmethod(canvas_class, (t_method)canvas_forwardmess, diff --git a/pd/src/g_io.c b/pd/src/g_io.c index dd7583cc3..462c203d9 100644 --- a/pd/src/g_io.c +++ b/pd/src/g_io.c @@ -281,7 +281,8 @@ static void vinlet_setup(void) class_addsymbol(vinlet_class, vinlet_symbol); class_addlist(vinlet_class, vinlet_list); class_addanything(vinlet_class, vinlet_anything); - class_addmethod(vinlet_class, (t_method)vinlet_dsp, gensym("dsp"), 0); + class_addmethod(vinlet_class, (t_method)vinlet_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(vinlet_class, gensym("pd")); } @@ -593,7 +594,8 @@ static void voutlet_setup(void) class_addsymbol(voutlet_class, voutlet_symbol); class_addlist(voutlet_class, voutlet_list); class_addanything(voutlet_class, voutlet_anything); - class_addmethod(voutlet_class, (t_method)voutlet_dsp, gensym("dsp"), 0); + class_addmethod(voutlet_class, (t_method)voutlet_dsp, gensym("dsp"), + A_CANT, 0); class_sethelpsymbol(voutlet_class, gensym("pd")); } diff --git a/pd/src/m_class.c b/pd/src/m_class.c index 6d4a8f9c0..a0b2c9bd6 100644 --- a/pd/src/m_class.c +++ b/pd/src/m_class.c @@ -847,6 +847,9 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) } narg++; ap++; + break; + default: + goto badarg; } } switch (narg) -- GitLab