From b409c8e19d5187dec43f84761a9d61dd35150a5b Mon Sep 17 00:00:00 2001 From: bruceperens Date: Sat, 22 Mar 2014 00:23:10 +0000 Subject: [PATCH] More -Weffc++ changes. git-svn-id: https://svn.code.sf.net/p/freetel/code@1471 01035d8c-6547-0410-b346-abe4f91aad63 --- freedv-server/CMakeLists.txt | 5 ++++- freedv-server/parameters/cxx-flags.txt | 2 +- freedv-server/source/driver_manager.cpp | 9 +++++++++ freedv-server/source/drivers.h | 14 ++++++++++++++ freedv-server/source/fifo.cpp | 2 +- freedv-server/source/framer.cpp | 4 ++-- freedv-server/source/framer_noop.cpp | 4 ++-- freedv-server/source/interfaces.cpp | 4 ++-- freedv-server/source/io_device.cpp | 4 ++-- freedv-server/source/keying.cpp | 4 ++-- freedv-server/source/keying_sink.cpp | 4 ++-- freedv-server/source/modem.cpp | 4 ++-- freedv-server/source/modem_noop.cpp | 4 ++-- .../source/platform/linux/audio_in_alsa.cpp | 8 ++++++-- .../source/platform/linux/audio_out_alsa.cpp | 9 ++++++--- freedv-server/source/ptt_constant.cpp | 6 +++--- freedv-server/source/ptt_input.cpp | 4 ++-- freedv-server/source/run.cpp | 4 ++++ freedv-server/source/text_constant.cpp | 4 ++-- freedv-server/source/text_input.cpp | 4 ++-- freedv-server/source/tone.cpp | 16 ++++++++-------- freedv-server/source/user_interface.cpp | 4 ++-- 22 files changed, 80 insertions(+), 43 deletions(-) diff --git a/freedv-server/CMakeLists.txt b/freedv-server/CMakeLists.txt index 9a2f3fb5..aef14a5d 100644 --- a/freedv-server/CMakeLists.txt +++ b/freedv-server/CMakeLists.txt @@ -163,7 +163,10 @@ set(Test.headers ) load_parameters(cxx-flags) -set_source_files_properties(${Compile.sources} ${Test.sources} PROPERTIES COMPILE_FLAGS ${Param.cxx-flags}) +load_parameters(cxx-flags-gtest) +set_source_files_properties(${Compile.sources} PROPERTIES COMPILE_FLAGS ${Param.cxx-flags}) +# Googletest would have -Weffc++ warnings. +set_source_files_properties(${Test.sources} PROPERTIES COMPILE_FLAGS ${Param.cxx-flags-gtest}) add_executable(freedv-server ${Compile.sources}) diff --git a/freedv-server/parameters/cxx-flags.txt b/freedv-server/parameters/cxx-flags.txt index 7bc2a5ff..bd72f6bf 100644 --- a/freedv-server/parameters/cxx-flags.txt +++ b/freedv-server/parameters/cxx-flags.txt @@ -1 +1 @@ --std=c++11 -g -pedantic -Wall -Wextra -Wshadow -DDEBUG +-std=c++11 -g -pedantic -Wall -Wextra -Wshadow -Weffc++ -DDEBUG diff --git a/freedv-server/source/driver_manager.cpp b/freedv-server/source/driver_manager.cpp index e2d5809a..2f8e4b24 100644 --- a/freedv-server/source/driver_manager.cpp +++ b/freedv-server/source/driver_manager.cpp @@ -108,6 +108,15 @@ namespace FreeDV { // Global instance of the driver manager used to register // drivers and to create driver instances. DriverManager::DriverManager() + : audio_input_drivers(0), + audio_output_drivers(0), + codecs(0), + framers(0), + keying_output_drivers(0), + modems(0), + ptt_input_drivers(0), + text_input_drivers(0), + user_interface_drivers(0) { } diff --git a/freedv-server/source/drivers.h b/freedv-server/source/drivers.h index 93ead3ec..9d6fd5c0 100644 --- a/freedv-server/source/drivers.h +++ b/freedv-server/source/drivers.h @@ -100,6 +100,9 @@ private: void get_overrun() const; uint8_t * reorder(std::size_t length); + // Copy constructor and operator =() disabled. + FIFO(const FIFO &); + FIFO & operator=(const FIFO &); public: /// Create the FIFO object. /// \param length The size of the fifo, in bytes. @@ -619,6 +622,10 @@ class Interfaces; /// UserInterfaces may provide their own drivers for microphone, /// loudspeaker, TextInput, and both forms of PTT. class UserInterface : public ::FreeDV::IODevice { +private: + // Copy constructor and operator =() disabled. + UserInterface(const UserInterface &); + UserInterface & operator=(const UserInterface &); protected: /// The external Interfaces object. /// @@ -641,6 +648,10 @@ public: /// Structure used to pass all of the drivers. Can be modified while the /// program is running. class Interfaces { +private: + // Copy constructor and operator=() disabled. + Interfaces(const Interfaces &); + Interfaces & operator=(const Interfaces &); public: Interfaces() : codec(0), framer(0), keying_output(0), loudspeaker(0), @@ -869,6 +880,9 @@ private: DriverList * text_input_drivers; DriverList * user_interface_drivers; + // Copy constructor and operator=() disabled. + DriverManager(const DriverManager &); + DriverManager & operator=(const DriverManager &); public: /// Initialize the driver manager. diff --git a/freedv-server/source/fifo.cpp b/freedv-server/source/fifo.cpp index 690aa319..b136ecfe 100644 --- a/freedv-server/source/fifo.cpp +++ b/freedv-server/source/fifo.cpp @@ -10,7 +10,7 @@ namespace FreeDV { FIFO::FIFO(std::size_t size) - : buffer(new uint8_t[size]), buffer_end(buffer + size) + : buffer(new uint8_t[size]), buffer_end(buffer + size), in(buffer), out(buffer) { reset(); } diff --git a/freedv-server/source/framer.cpp b/freedv-server/source/framer.cpp index 5215a5e2..33b4ba64 100644 --- a/freedv-server/source/framer.cpp +++ b/freedv-server/source/framer.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - Framer::Framer(const char * name, const char * parameters) - : Base(name, parameters) + Framer::Framer(const char * _name, const char * _parameters) + : Base(_name, _parameters) { } diff --git a/freedv-server/source/framer_noop.cpp b/freedv-server/source/framer_noop.cpp index f0f269a1..4f94a78a 100644 --- a/freedv-server/source/framer_noop.cpp +++ b/freedv-server/source/framer_noop.cpp @@ -58,8 +58,8 @@ namespace FreeDV { std::size_t output_length); }; - FramerNoOp::FramerNoOp(const char * parameters) - : Framer("no-op", parameters) + FramerNoOp::FramerNoOp(const char * _parameters) + : Framer("no-op", _parameters) { } diff --git a/freedv-server/source/interfaces.cpp b/freedv-server/source/interfaces.cpp index abade143..f93f0632 100644 --- a/freedv-server/source/interfaces.cpp +++ b/freedv-server/source/interfaces.cpp @@ -56,9 +56,9 @@ namespace FreeDV { } std::ostream & - Interfaces::print(std::ostream & stream, const char * program_name) const + Interfaces::print(std::ostream & stream, const char * _program_name) const { - if ( program_name ) { + if ( _program_name ) { stream << program_name << " \\" << std::endl; } stream << "--codec=\"" << *codec << "\" \\" << std::endl; diff --git a/freedv-server/source/io_device.cpp b/freedv-server/source/io_device.cpp index ba214c9e..b90ced5a 100644 --- a/freedv-server/source/io_device.cpp +++ b/freedv-server/source/io_device.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - IODevice::IODevice(const char * name, const char * parameters) - : Base(name, parameters) + IODevice::IODevice(const char * _name, const char * _parameters) + : Base(_name, _parameters) { } diff --git a/freedv-server/source/keying.cpp b/freedv-server/source/keying.cpp index 638e35a7..42298bbc 100644 --- a/freedv-server/source/keying.cpp +++ b/freedv-server/source/keying.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - KeyingOutput::KeyingOutput(const char * name, const char * parameters) - : IODevice(name, parameters) + KeyingOutput::KeyingOutput(const char * _name, const char * _parameters) + : IODevice(_name, _parameters) { } diff --git a/freedv-server/source/keying_sink.cpp b/freedv-server/source/keying_sink.cpp index 5403bd3f..75436ecd 100644 --- a/freedv-server/source/keying_sink.cpp +++ b/freedv-server/source/keying_sink.cpp @@ -36,8 +36,8 @@ namespace FreeDV { std::size_t ready(); }; - KeyingSink::KeyingSink(const char * parameters) - : KeyingOutput("sink", parameters) + KeyingSink::KeyingSink(const char * _parameters) + : KeyingOutput("sink", _parameters) { } diff --git a/freedv-server/source/modem.cpp b/freedv-server/source/modem.cpp index ad99c85a..2270069a 100644 --- a/freedv-server/source/modem.cpp +++ b/freedv-server/source/modem.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - Modem::Modem(const char * name, const char * parameters) - : Base(name, parameters) + Modem::Modem(const char * _name, const char * _parameters) + : Base(_name, _parameters) { } diff --git a/freedv-server/source/modem_noop.cpp b/freedv-server/source/modem_noop.cpp index 9e77f943..f1580a6e 100644 --- a/freedv-server/source/modem_noop.cpp +++ b/freedv-server/source/modem_noop.cpp @@ -61,8 +61,8 @@ namespace FreeDV { min_frame_duration() const; }; - ModemNoOp::ModemNoOp(const char * parameters) - : Modem("no-op", parameters) + ModemNoOp::ModemNoOp(const char * _parameters) + : Modem("no-op", _parameters) { } diff --git a/freedv-server/source/platform/linux/audio_in_alsa.cpp b/freedv-server/source/platform/linux/audio_in_alsa.cpp index 28c34c2d..ba3177d7 100644 --- a/freedv-server/source/platform/linux/audio_in_alsa.cpp +++ b/freedv-server/source/platform/linux/audio_in_alsa.cpp @@ -24,10 +24,14 @@ namespace FreeDV { private: static const int overlong_delay = AudioFrameSamples * 4; - char * const parameters; snd_pcm_t * handle; + char * const parameters; bool started; + // Copy constructor and operator=() disabled. + AudioInALSA(const AudioInALSA &); + AudioInALSA & operator=(const AudioInALSA &); + NORETURN void do_throw(const int error, const char * message = 0) { @@ -65,7 +69,7 @@ namespace FreeDV { }; AudioInALSA::AudioInALSA(const char * p) - : AudioInput("alsa", p), parameters(strdup(p)), started(false) + : AudioInput("alsa", p), handle(0), parameters(strdup(p)), started(false) { handle = ALSASetup( p, diff --git a/freedv-server/source/platform/linux/audio_out_alsa.cpp b/freedv-server/source/platform/linux/audio_out_alsa.cpp index e6b1ec46..2a8c3eb1 100644 --- a/freedv-server/source/platform/linux/audio_out_alsa.cpp +++ b/freedv-server/source/platform/linux/audio_out_alsa.cpp @@ -23,10 +23,14 @@ namespace FreeDV { /// class AudioOutALSA : public AudioOutput { private: - char * const parameters; snd_pcm_t * handle; + char * const parameters; bool started; + // Copy constructor and operator=() disabled. + AudioOutALSA(const AudioOutALSA &); + AudioOutALSA & operator=(const AudioOutALSA &); + NORETURN void do_throw(const int error, const char * message = 0) { @@ -64,8 +68,7 @@ namespace FreeDV { }; AudioOutALSA::AudioOutALSA(const char * p) - : AudioOutput("alsa", p), parameters(strdup(p)), - started(false) + : AudioOutput("alsa", p), handle(0), parameters(strdup(p)), started(false) { handle = ALSASetup( p, diff --git a/freedv-server/source/ptt_constant.cpp b/freedv-server/source/ptt_constant.cpp index 48447b98..cf619140 100644 --- a/freedv-server/source/ptt_constant.cpp +++ b/freedv-server/source/ptt_constant.cpp @@ -15,8 +15,8 @@ namespace FreeDV { private: /// This is true if ready has not yet been sent. /// - bool ready_one_shot; bool pressed; + bool ready_one_shot; public: /// Instantiate push-to-talk source with constant input, for testing. /// @@ -40,8 +40,8 @@ namespace FreeDV { bool state(); }; - PTTConstant::PTTConstant(const char * parameters) - : PTTInput("constant", parameters), ready_one_shot(true) + PTTConstant::PTTConstant(const char * _parameters) + : PTTInput("constant", _parameters), pressed(false), ready_one_shot(true) { if ( *parameters == 't' ) pressed = true; diff --git a/freedv-server/source/ptt_input.cpp b/freedv-server/source/ptt_input.cpp index aed9a6c4..082103d4 100644 --- a/freedv-server/source/ptt_input.cpp +++ b/freedv-server/source/ptt_input.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - PTTInput::PTTInput(const char * name, const char * parameters) - : IODevice(name, parameters) + PTTInput::PTTInput(const char * _name, const char * _parameters) + : IODevice(_name, _parameters) { } diff --git a/freedv-server/source/run.cpp b/freedv-server/source/run.cpp index 622af8b8..0604325c 100644 --- a/freedv-server/source/run.cpp +++ b/freedv-server/source/run.cpp @@ -40,6 +40,10 @@ namespace FreeDV { bool started; PollType poll_fds[100]; + // Disable copy constructor and operator=(). + Run(const Run &); + Run & operator=(const Run &); + bool add_poll_device(IODevice * device); NORETURN void do_throw(int error, const char * message); void key_down(); diff --git a/freedv-server/source/text_constant.cpp b/freedv-server/source/text_constant.cpp index 87eca385..f73d55f2 100644 --- a/freedv-server/source/text_constant.cpp +++ b/freedv-server/source/text_constant.cpp @@ -36,8 +36,8 @@ namespace FreeDV { std::size_t ready(); }; - TextConstant::TextConstant(const char * parameters) - : TextInput("constant", parameters), index(0), length(strlen(parameters)) + TextConstant::TextConstant(const char * _parameters) + : TextInput("constant", _parameters), index(0), length(strlen(_parameters)) { } diff --git a/freedv-server/source/text_input.cpp b/freedv-server/source/text_input.cpp index 4db97129..80c96012 100644 --- a/freedv-server/source/text_input.cpp +++ b/freedv-server/source/text_input.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - TextInput::TextInput(const char * name, const char * parameters) - : IODevice(name, parameters) + TextInput::TextInput(const char * _name, const char * _parameters) + : IODevice(_name, _parameters) { } diff --git a/freedv-server/source/tone.cpp b/freedv-server/source/tone.cpp index f9da517f..68f4b81c 100644 --- a/freedv-server/source/tone.cpp +++ b/freedv-server/source/tone.cpp @@ -48,8 +48,8 @@ namespace FreeDV { virtual std::size_t read16(std::int16_t * array, std::size_t length); }; - Tone::Tone(const char * parameters) - : AudioInput("tone", parameters), clock(0) + Tone::Tone(const char * _parameters) + : AudioInput("tone", _parameters), clock(0) { unsigned int index = 0; unsigned int input = 0; @@ -57,7 +57,7 @@ namespace FreeDV { while ( !p.eof() ) { float frequency = 0.0; - float amplitude = 1.0; + float _amplitude = 1.0; if ( index >= ((sizeof(tones) / sizeof(*tones)) - 1) ) { std::cerr << "Too many tones, number " << index @@ -68,7 +68,7 @@ namespace FreeDV { char c; p >> c; if ( !p.fail() && c == ',' ) { - p >> amplitude; + p >> _amplitude; if ( !p.fail() ) { c = '\0'; p >> c; @@ -80,7 +80,7 @@ namespace FreeDV { break; } } - if ( frequency == 0.0 || amplitude == 0.0 ) { + if ( frequency == 0.0 || _amplitude == 0.0 ) { input++; continue; } @@ -90,13 +90,13 @@ namespace FreeDV { << frequency << '.' << std::endl; break; } - if ( amplitude < 0.0 || amplitude > 1.0 ) { + if ( _amplitude < 0.0 || _amplitude > 1.0 ) { std::cerr << "tone: amplitude must be in range of 0.0..1.0, is " - << frequency << '.' << std::endl; + << _amplitude << '.' << std::endl; break; } tones[index].frequency = frequency; - tones[index].amplitude = amplitude; + tones[index].amplitude = _amplitude; index++; input++; } diff --git a/freedv-server/source/user_interface.cpp b/freedv-server/source/user_interface.cpp index b91f0a27..b2ad501a 100644 --- a/freedv-server/source/user_interface.cpp +++ b/freedv-server/source/user_interface.cpp @@ -7,8 +7,8 @@ #include "drivers.h" namespace FreeDV { - UserInterface::UserInterface(const char * name, const char * parameters, Interfaces *) - : IODevice(name, parameters) + UserInterface::UserInterface(const char * _name, const char * _parameters, Interfaces * _interfaces) + : IODevice(_name, _parameters), interfaces(_interfaces) { } -- 2.25.1