]> git.saurik.com Git - wxWidgets.git/commitdiff
more about virtual functions access specifier changing
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 9 Jan 2007 14:01:08 +0000 (14:01 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 9 Jan 2007 14:01:08 +0000 (14:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/tech/tn0020.txt

index d351b4e349e2608c3996d82ec60d5847c6b415f3..8bcbf2c3a758bb185e28a5ef1d6b8ba768aa7cc3 100644 (file)
@@ -46,8 +46,14 @@ The changes that are NOT binary compatible:
 even a default one)
 - Changing the order of the virtual functions in a class
 ["switching" them, etc.]
-- Changing access privileges to a function (protected to private etc.)
-[unlike KDE we need to support windows so this is not allowed]
+- Changing access privileges of a function: some compilers (among which MSVC)
+  use the function access specifier in its mangled name. Moreover, while
+  changing a private function to public should be compatible (as the old
+  symbol can't be referenced from outside the library anyhow), changing a
+  virtual private function to public is NOT compatible because the old symbol
+  is referenced by the virtual tables in the executable code and so an old
+  program compiled with MSVC wouldn't start up with a new DLL even if it
+  doesn't use the affected symbol at all!
 - Adding a member variable
 - Changing the order of non-static member variables