summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--salhelper/inc/salhelper/simplereferenceobject.hxx6
-rw-r--r--salhelper/source/msci.map1
-rw-r--r--salhelper/source/simplereferenceobject.cxx15
3 files changed, 22 insertions, 0 deletions
diff --git a/salhelper/inc/salhelper/simplereferenceobject.hxx b/salhelper/inc/salhelper/simplereferenceobject.hxx
index a7ae201fb3fa..c5ef6dbbd070 100644
--- a/salhelper/inc/salhelper/simplereferenceobject.hxx
+++ b/salhelper/inc/salhelper/simplereferenceobject.hxx
@@ -121,6 +121,12 @@ private:
*/
void operator =(SimpleReferenceObject);
+#ifdef _MSC_VER
+/* We can't now have these private with MSVC2008 at least, it leads to
+ compilation errors in xmloff and other places.
+*/
+protected:
+#endif
/** not implemented (see general class documentation)
@internal
*/
diff --git a/salhelper/source/msci.map b/salhelper/source/msci.map
index 02f1527a703b..23dab32117ca 100644
--- a/salhelper/source/msci.map
+++ b/salhelper/source/msci.map
@@ -19,6 +19,7 @@ GetVersionInfo
UDK_3.1 {
global:
+ ??_VSimpleReferenceObject@salhelper@@KAXPAX@Z;
??_7SimpleReferenceObject@salhelper@@6B@;
??0Condition@salhelper@@QAE@AAVMutex@osl@@@Z;
diff --git a/salhelper/source/simplereferenceobject.cxx b/salhelper/source/simplereferenceobject.cxx
index 0125e13198be..6df42cc1c930 100644
--- a/salhelper/source/simplereferenceobject.cxx
+++ b/salhelper/source/simplereferenceobject.cxx
@@ -74,4 +74,19 @@ void SimpleReferenceObject::operator delete(void * pPtr, std::nothrow_t const &)
#endif // WNT
}
+#ifdef _MSC_VER
+
+/* This operator is supposed to be unimplemented, but that now leads
+ * to compilation and/or linking errors with MSVC2008. (Don't know
+ * about MSVC2010.) As it can be left unimplemented just fine with
+ * gcc, presumably it is never called. So do implement it then to
+ * avoid the compilation and/or linking errors, but make it crash
+ * intentionally if called.
+ */
+void SimpleReferenceObject::operator delete[](void * /* pPtr */)
+{
+ free(NULL);
+}
+#endif
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */