Add a virtual destructor to a polymorphic struct that really should have one
Merge remote-tracking branch 'dda/pr/430' into dda-master