[Libreoffice-commits] .: Branch 'libreoffice-3-3' - 2 commits - salhelper/inc salhelper/source

Tor Lillqvist tml at kemper.freedesktop.org
Thu Nov 4 04:12:34 PDT 2010


 salhelper/inc/salhelper/simplereferenceobject.hxx |    6 ++++++
 salhelper/source/msci.map                         |    3 +++
 salhelper/source/simplereferenceobject.cxx        |   15 +++++++++++++++
 3 files changed, 24 insertions(+)

New commits:
commit 05bd1fc1873c127e6e71d67acbc25815505df21d
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Thu Nov 4 12:04:32 2010 +0200

    Attempt to fix some vos removal fallout on Windows
    
    After of the vos removal, some classes in other parts of the code now
    are subclasses of SimpleReferenceObject.
    
    To avoid compilation and linking errors in those other parts, we seem
    to need to have the operator new[] and operator delete[] in
    SimpleReferenceObject as protected instead of private. We also need an
    implementation of operator delete[]. As it can be unimplemented with
    gcc, I hope it isn't actually called, though, so it for now crashes
    intentionally if called.
    
    Will see later if this actually works, this is just a commit to make
    stuff build.

diff --git a/salhelper/inc/salhelper/simplereferenceobject.hxx b/salhelper/inc/salhelper/simplereferenceobject.hxx
index 2d6399c..865eff5 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 145616a..4968573 100644
--- a/salhelper/source/msci.map
+++ b/salhelper/source/msci.map
@@ -19,6 +19,7 @@ GetVersionInfo
 
 UDK_3.1 {
     global:
+        ??_VSimpleReferenceObject at salhelper@@KAXPAX at Z;
         ??_7SimpleReferenceObject at salhelper@@6B@;
 
         ??0Condition at salhelper@@QAE at AAVMutex@osl@@@Z;
diff --git a/salhelper/source/simplereferenceobject.cxx b/salhelper/source/simplereferenceobject.cxx
index 7640477..f310891 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: */
commit cd48803564fe5b175118ed9f3204c9a79b354fbb
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Thu Nov 4 11:35:45 2010 +0200

    Export more Timer API with MSVC in the map file

diff --git a/salhelper/source/msci.map b/salhelper/source/msci.map
index c7838e2..145616a 100644
--- a/salhelper/source/msci.map
+++ b/salhelper/source/msci.map
@@ -37,8 +37,10 @@ UDK_3.1 {
         ??4timedout at ConditionWaiter@salhelper@@QAEAAU012 at ABU012@@Z;
 
         ??0Timer at salhelper@@QAE at XZ;
+        ??0Timer at salhelper@@QAE at ABUTTimeValue@1@@Z;
         ??1Timer at salhelper@@MAE at XZ;
 
+        ?isExpired at Timer@salhelper@@QBAEXZ;
         ?isTicking at Timer@salhelper@@QBAEXZ;
         ?setRemainingTime at Timer@salhelper@@QAAXABUTTimeValue at 2@@Z;
         ?start at Timer@salhelper@@QAAXXZ;


More information about the Libreoffice-commits mailing list