pdfium: Fix all -Wdelete-non-virtual-dtor violations on Mac.
authorNico Weber <thakis@chromium.org>
Fri, 18 Jul 2014 16:14:35 +0000 (09:14 -0700)
committerNico Weber <thakis@chromium.org>
Fri, 18 Jul 2014 16:14:35 +0000 (09:14 -0700)
commit5eb9f7b4542cca34d4af96ea43be362446a4794f
treeb0a0fdd6b1c525bf3633d6de2b79b70058e2cc7d
parenta9c29e006f74fefd96d5c3eab9d8233b321b296a
pdfium: Fix all -Wdelete-non-virtual-dtor violations on Mac.

Calling `delete` on an object of a type that has virtual functions but
not a virtual destructor is questionable: Since the object has virtual functions,
it likely has subclasses, so if it's deleted through the base pointer and the
destructor isn't virtual, the subclass destructor won't be called.

In most cases, the classes getting deleted can just be marked final to tell
the compiler that it can't possibly have subclasses (this also enables the
compiler to generate better code).

Two classes didn't have any sub- or superclasses but virtual functions -
this doesn't make sense, so make all methods of these classes non-virtual.
(Also delete an unused function on one of the two classes.)

In one case, a class actually did have a subclass that needs to be deleted
virtually, so mark one destructor as virtual.

BUG=none
R=bo_xu@foxitsoftware.com

Review URL: https://codereview.chromium.org/370853002
13 files changed:
core/include/fpdfapi/fpdf_parser.h
core/include/fxcrt/fx_system.h
core/include/fxge/fx_font.h
core/src/fpdfapi/fpdf_font/ttgsubtable.h
core/src/fpdfdoc/tagged_int.h
core/src/fxcrt/extension.h
core/src/fxcrt/fx_arabic.h
core/src/fxge/apple/apple_int.h
fpdfsdk/include/fsdk_define.h
fpdfsdk/include/fsdk_mgr.h
fpdfsdk/src/fpdf_sysfontinfo.cpp
fpdfsdk/src/fpdfsave.cpp
fpdfsdk/src/fpdfview.cpp