With the compiler flags we use, gcc issues a warning in many cases if you define a class that has virtual functions but does not have a virtual destructor. This causes bogus warnings (quite a few, with another patch I'm working on), and in general isn't useful for most of the code in our tree. Some classes probably unnecessarily define virtual destructors just to quiet the compiler, too... a virtual destructor is only needed if your object could be deleted through a base class pointer.
Comment on attachment 138263 [details] [diff] [review] patch r=dbaron. See also the discussion in bug 113192.
This patch got rid of 15 "'class xxx' has virtual functions but non-virtual destructor" 'Blamed Build Warnings; Linux brad Clobber' :-)