This patch attempts to fix the binary incompatibility of __rw_facet
ctor and dtor when compiled with MSVC on Windows, introduced while
fixing STDCXX-469 (MSVC mangles the access specifier into the names
of class members):

  https://issues.apache.org/jira/browse/STDCXX-469

I considered limiting the patch to MSVC 7.1 and prior since MSVC 8 wasn't supported in 4.1.3 but doing so wouldn't take into account
the possibility of linking programs compiled with MSVC 7.x with
4.2.0 built with MSVC 8.0.

Index: include/loc/_facet.h
===================================================================
--- include/loc/_facet.h        (revision 585584)
+++ include/loc/_facet.h        (working copy)
@@ -25,7 +25,7 @@
  * implied.   See  the License  for  the  specific language  governing
  * permissions and limitations under the License.
  *
- * Copyright 1994-2006 Rogue Wave Software.
+ * Copyright 1994-2007 Rogue Wave Software, Inc.
  *

**************************************************************************/

@@ -56,8 +56,12 @@
     // of standard types by the library
     typedef __rw_facet* (_C_ctor_t)(_RWSTD_SIZE_T, const char*);

+#ifndef _MSC_VER
+
 protected:

+#endif   // !MSVC
+
     _EXPLICIT __rw_facet (_RWSTD_SIZE_T = 0);

     virtual ~__rw_facet ();

Reply via email to