From 83c20196117f0b3519479c7bb736bc1a45e19619 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Thu, 1 May 2014 23:33:40 +0200 Subject: [PATCH] LadspaEffect/TAP: fix instantiation/destruction Instead of relying on naming the init functions _init() and _fini() declare them as constructors/destructors and use a different name so there's no double destruction Closes #668. --- plugins/LadspaEffect/tap/tap_autopan.c | 8 ++++---- plugins/LadspaEffect/tap/tap_chorusflanger.c | 8 ++++---- plugins/LadspaEffect/tap/tap_deesser.c | 8 ++++---- plugins/LadspaEffect/tap/tap_doubler.c | 8 ++++---- plugins/LadspaEffect/tap/tap_dynamics_m.c | 8 ++++---- plugins/LadspaEffect/tap/tap_dynamics_st.c | 8 ++++---- plugins/LadspaEffect/tap/tap_echo.c | 8 ++++---- plugins/LadspaEffect/tap/tap_eq.c | 4 ++-- plugins/LadspaEffect/tap/tap_eqbw.c | 4 ++-- plugins/LadspaEffect/tap/tap_limiter.c | 8 ++++---- plugins/LadspaEffect/tap/tap_pinknoise.c | 8 ++++---- plugins/LadspaEffect/tap/tap_pitch.c | 8 ++++---- plugins/LadspaEffect/tap/tap_reflector.c | 8 ++++---- plugins/LadspaEffect/tap/tap_reverb.c | 8 ++++---- plugins/LadspaEffect/tap/tap_rotspeak.c | 8 ++++---- plugins/LadspaEffect/tap/tap_sigmoid.c | 8 ++++---- plugins/LadspaEffect/tap/tap_tremolo.c | 8 ++++---- plugins/LadspaEffect/tap/tap_tubewarmth.c | 8 ++++---- plugins/LadspaEffect/tap/tap_vibrato.c | 8 ++++---- 19 files changed, 72 insertions(+), 72 deletions(-) diff --git a/plugins/LadspaEffect/tap/tap_autopan.c b/plugins/LadspaEffect/tap/tap_autopan.c index 387ae2b92..3cffaabf7 100644 --- a/plugins/LadspaEffect/tap/tap_autopan.c +++ b/plugins/LadspaEffect/tap/tap_autopan.c @@ -233,10 +233,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void -_init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -341,9 +341,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void -_fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_chorusflanger.c b/plugins/LadspaEffect/tap/tap_chorusflanger.c index c85b39439..9605fbf81 100644 --- a/plugins/LadspaEffect/tap/tap_chorusflanger.c +++ b/plugins/LadspaEffect/tap/tap_chorusflanger.c @@ -436,10 +436,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -575,9 +575,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_deesser.c b/plugins/LadspaEffect/tap/tap_deesser.c index b18f33b45..919007ddb 100644 --- a/plugins/LadspaEffect/tap/tap_deesser.c +++ b/plugins/LadspaEffect/tap/tap_deesser.c @@ -349,10 +349,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -471,9 +471,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_doubler.c b/plugins/LadspaEffect/tap/tap_doubler.c index b84c1d583..46b0f7971 100644 --- a/plugins/LadspaEffect/tap/tap_doubler.c +++ b/plugins/LadspaEffect/tap/tap_doubler.c @@ -574,10 +574,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -717,9 +717,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_dynamics_m.c b/plugins/LadspaEffect/tap/tap_dynamics_m.c index 6ea8d6263..559d80d3f 100644 --- a/plugins/LadspaEffect/tap/tap_dynamics_m.c +++ b/plugins/LadspaEffect/tap/tap_dynamics_m.c @@ -516,10 +516,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -646,9 +646,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_dynamics_st.c b/plugins/LadspaEffect/tap/tap_dynamics_st.c index 7a42fe1e8..045754cda 100644 --- a/plugins/LadspaEffect/tap/tap_dynamics_st.c +++ b/plugins/LadspaEffect/tap/tap_dynamics_st.c @@ -696,10 +696,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -857,9 +857,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_echo.c b/plugins/LadspaEffect/tap/tap_echo.c index e84cc2b51..6a0bdbb54 100644 --- a/plugins/LadspaEffect/tap/tap_echo.c +++ b/plugins/LadspaEffect/tap/tap_echo.c @@ -436,10 +436,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -607,9 +607,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_eq.c b/plugins/LadspaEffect/tap/tap_eq.c index 2c07cd004..daf9463a1 100644 --- a/plugins/LadspaEffect/tap/tap_eq.c +++ b/plugins/LadspaEffect/tap/tap_eq.c @@ -494,7 +494,7 @@ run_adding_eq(LADSPA_Handle instance, unsigned long sample_count) { void - _init() { +__attribute__((constructor)) tap_init() { char **port_names; LADSPA_PortDescriptor *port_descriptors; @@ -765,7 +765,7 @@ void void - _fini() { +__attribute__((destructor)) tap_fini() { if (eqDescriptor) { free((LADSPA_PortDescriptor *)eqDescriptor->PortDescriptors); diff --git a/plugins/LadspaEffect/tap/tap_eqbw.c b/plugins/LadspaEffect/tap/tap_eqbw.c index 3805d003a..fd9d15d46 100644 --- a/plugins/LadspaEffect/tap/tap_eqbw.c +++ b/plugins/LadspaEffect/tap/tap_eqbw.c @@ -596,7 +596,7 @@ run_adding_eq(LADSPA_Handle instance, unsigned long sample_count) { void - _init() { +__attribute__((constructor)) tap_init() { char **port_names; LADSPA_PortDescriptor *port_descriptors; @@ -955,7 +955,7 @@ void void - _fini() { +__attribute__((destructor)) tap_fini() { if (eqDescriptor) { free((LADSPA_PortDescriptor *)eqDescriptor->PortDescriptors); diff --git a/plugins/LadspaEffect/tap/tap_limiter.c b/plugins/LadspaEffect/tap/tap_limiter.c index 7cd829c7c..b8de945bc 100644 --- a/plugins/LadspaEffect/tap/tap_limiter.c +++ b/plugins/LadspaEffect/tap/tap_limiter.c @@ -324,10 +324,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -423,9 +423,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_pinknoise.c b/plugins/LadspaEffect/tap/tap_pinknoise.c index 5984ecee4..a71031061 100644 --- a/plugins/LadspaEffect/tap/tap_pinknoise.c +++ b/plugins/LadspaEffect/tap/tap_pinknoise.c @@ -225,10 +225,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -325,9 +325,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_pitch.c b/plugins/LadspaEffect/tap/tap_pitch.c index eec650682..4f85a49ee 100644 --- a/plugins/LadspaEffect/tap/tap_pitch.c +++ b/plugins/LadspaEffect/tap/tap_pitch.c @@ -418,10 +418,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -536,9 +536,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_reflector.c b/plugins/LadspaEffect/tap/tap_reflector.c index 4e8e33aa6..12af24366 100644 --- a/plugins/LadspaEffect/tap/tap_reflector.c +++ b/plugins/LadspaEffect/tap/tap_reflector.c @@ -378,10 +378,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -480,9 +480,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_reverb.c b/plugins/LadspaEffect/tap/tap_reverb.c index 87afa28da..e1a0fe765 100644 --- a/plugins/LadspaEffect/tap/tap_reverb.c +++ b/plugins/LadspaEffect/tap/tap_reverb.c @@ -665,10 +665,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -815,9 +815,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_rotspeak.c b/plugins/LadspaEffect/tap/tap_rotspeak.c index c16393c3f..0b4be0720 100644 --- a/plugins/LadspaEffect/tap/tap_rotspeak.c +++ b/plugins/LadspaEffect/tap/tap_rotspeak.c @@ -624,10 +624,10 @@ LADSPA_Descriptor * stereo_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -748,9 +748,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(stereo_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_sigmoid.c b/plugins/LadspaEffect/tap/tap_sigmoid.c index b1d33e843..e2e2d4b20 100644 --- a/plugins/LadspaEffect/tap/tap_sigmoid.c +++ b/plugins/LadspaEffect/tap/tap_sigmoid.c @@ -228,10 +228,10 @@ cleanup_Sigmoid(LADSPA_Handle Instance) { LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -318,9 +318,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_tremolo.c b/plugins/LadspaEffect/tap/tap_tremolo.c index a4a929574..6ff4a3c52 100644 --- a/plugins/LadspaEffect/tap/tap_tremolo.c +++ b/plugins/LadspaEffect/tap/tap_tremolo.c @@ -220,10 +220,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -323,9 +323,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_tubewarmth.c b/plugins/LadspaEffect/tap/tap_tubewarmth.c index 42a0db495..2af30437c 100644 --- a/plugins/LadspaEffect/tap/tap_tubewarmth.c +++ b/plugins/LadspaEffect/tap/tap_tubewarmth.c @@ -381,10 +381,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void - _init() { +__attribute__((constructor)) tap_init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; @@ -471,9 +471,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void - _fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); } diff --git a/plugins/LadspaEffect/tap/tap_vibrato.c b/plugins/LadspaEffect/tap/tap_vibrato.c index 40d14541e..c95035a93 100644 --- a/plugins/LadspaEffect/tap/tap_vibrato.c +++ b/plugins/LadspaEffect/tap/tap_vibrato.c @@ -308,10 +308,10 @@ LADSPA_Descriptor * mono_descriptor = NULL; -/* _init() is called automatically when the plugin library is first +/* __attribute__((constructor)) tap_init() is called automatically when the plugin library is first loaded. */ void -_init() { +__attribute__((constructor)) tap_init() { int i; char ** port_names; @@ -425,9 +425,9 @@ delete_descriptor(LADSPA_Descriptor * descriptor) { } -/* _fini() is called automatically when the library is unloaded. */ +/* __attribute__((destructor)) tap_fini() is called automatically when the library is unloaded. */ void -_fini() { +__attribute__((destructor)) tap_fini() { delete_descriptor(mono_descriptor); }