UsbTransportSniffer: Defensively use 'final'

UsbTransportSniffer invokes the virtual method Close() within
its destructor.  This usage is fine right now, but if a future
class inherited from UsbTransportSniffer and overrode the Close()
method, then this destructor would not act as expected.

To protect against this, we declare Close() 'final' in
UsbTransportSniffer, and add a comment.

Test: Treehugger
Change-Id: I6182d84e7caf67cb06f37c22c6203ad6d6e57f34
This commit is contained in:
Greg Kaiser 2018-09-05 08:04:01 -07:00
parent 662a3a6cc3
commit 33b07ba96c

View file

@ -72,7 +72,7 @@ class UsbTransportSniffer : public UsbTransport {
virtual ssize_t Read(void* data, size_t len) override;
virtual ssize_t Write(const void* data, size_t len) override;
virtual int Close() override;
virtual int Close() override final; // note usage in destructor
virtual int Reset() override;
const std::vector<Event> Transfers();