basic/source/sbx/sbxbase.cxx                                          |    6 
 external/libcmis/0001-Fix-warning-C4589-when-building-with-MSVC.patch |  222 
++++++++++
 external/libcmis/UnpackedTarball_libcmis.mk                           |    1 
 include/oox/helper/binaryinputstream.hxx                              |    4 
 include/oox/helper/binaryoutputstream.hxx                             |    4 
 5 files changed, 226 insertions(+), 11 deletions(-)

New commits:
commit b3e6bec35090a88e6ae3c06fc7bb9734bf996e4a
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Thu Feb 22 21:48:32 2024 +0600
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Fri Feb 23 01:34:11 2024 +0100

    Fix warning C4589 when building with MSVC without -Wv:18
    
    Discovered by https://gerrit.libreoffice.org/c/core/+/163717
    
    Like these:
    
     C:\libcmis\inc\libcmis/document.hxx(51): warning C4589: Constructor of 
abstract class 'libcmis::Document' ignores initializer for virtual base class 
'libcmis::Object'
     C:\libcmis\inc\libcmis/document.hxx(51): note: virtual base classes are 
only initialized by the most-derived type
     C:\libcmis\inc\libcmis/folder.hxx(58): warning C4589: Constructor of 
abstract class 'libcmis::Folder' ignores initializer for virtual base class 
'libcmis::Object'
     C:\libcmis\inc\libcmis/folder.hxx(58): note: virtual base classes are only 
initialized by the most-derived type
    
    Change-Id: Icc7f94cc02796a86b47b025df69ec3db971ad11e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163777
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/basic/source/sbx/sbxbase.cxx b/basic/source/sbx/sbxbase.cxx
index 3189977a6b8e..b90368f68f26 100644
--- a/basic/source/sbx/sbxbase.cxx
+++ b/basic/source/sbx/sbxbase.cxx
@@ -57,11 +57,7 @@ SbxBase::SbxBase()
     nFlags  = SbxFlagBits::ReadWrite;
 }
 
-SbxBase::SbxBase( const SbxBase& r )
-    : SvRefBase( r )
-{
-    nFlags  = r.nFlags;
-}
+SbxBase::SbxBase(const SbxBase& r) = default;
 
 SbxBase::~SbxBase()
 {
diff --git 
a/external/libcmis/0001-Fix-warning-C4589-when-building-with-MSVC.patch 
b/external/libcmis/0001-Fix-warning-C4589-when-building-with-MSVC.patch
new file mode 100644
index 000000000000..0883d708f3af
--- /dev/null
+++ b/external/libcmis/0001-Fix-warning-C4589-when-building-with-MSVC.patch
@@ -0,0 +1,222 @@
+From c86638560b3cb39b847d4e84ae9b8492f0c5fa22 Mon Sep 17 00:00:00 2001
+From: Mike Kaganski <mikekagan...@hotmail.com>
+Date: Thu, 22 Feb 2024 20:47:48 +0600
+Subject: [PATCH] Fix warning C4589 when building with MSVC
+
+C:\libcmis\inc\libcmis/document.hxx(51): warning C4589: Constructor of 
abstract class 'libcmis::Document' ignores initializer for virtual base class 
'libcmis::Object'
+C:\libcmis\inc\libcmis/document.hxx(51): note: virtual base classes are only 
initialized by the most-derived type
+C:\libcmis\inc\libcmis/folder.hxx(58): warning C4589: Constructor of abstract 
class 'libcmis::Folder' ignores initializer for virtual base class 
'libcmis::Object'
+C:\libcmis\inc\libcmis/folder.hxx(58): note: virtual base classes are only 
initialized by the most-derived type
+---
+ inc/libcmis/document.hxx            | 1 -
+ inc/libcmis/folder.hxx              | 1 -
+ src/libcmis/atom-document.cxx       | 2 --
+ src/libcmis/atom-folder.cxx         | 1 -
+ src/libcmis/gdrive-document.cxx     | 2 --
+ src/libcmis/gdrive-folder.cxx       | 2 --
+ src/libcmis/onedrive-document.cxx   | 2 --
+ src/libcmis/onedrive-folder.cxx     | 2 --
+ src/libcmis/sharepoint-document.cxx | 2 --
+ src/libcmis/sharepoint-folder.cxx   | 2 --
+ src/libcmis/ws-document.cxx         | 1 -
+ src/libcmis/ws-folder.cxx           | 1 -
+ 12 files changed, 19 deletions(-)
+
+diff --git a/inc/libcmis/document.hxx b/inc/libcmis/document.hxx
+index 8f44313..ca18a84 100644
+--- a/inc/libcmis/document.hxx
++++ b/inc/libcmis/document.hxx
+@@ -48,7 +48,6 @@ namespace libcmis
+     class LIBCMIS_API Document : public virtual Object
+     {
+         public:
+-            Document( Session* session ) : Object( session ) { }
+             virtual ~Document( ) { }
+ 
+             /** Get the folder parents for the document.
+diff --git a/inc/libcmis/folder.hxx b/inc/libcmis/folder.hxx
+index 0010dbd..24f4ac4 100644
+--- a/inc/libcmis/folder.hxx
++++ b/inc/libcmis/folder.hxx
+@@ -55,7 +55,6 @@ namespace libcmis
+     class LIBCMIS_API Folder : public virtual Object
+     {
+         public:
+-            Folder( Session* session ) : Object( session ) { }
+             virtual ~Folder() { }
+ 
+             virtual std::vector< std::string > getPaths( );
+diff --git a/src/libcmis/atom-document.cxx b/src/libcmis/atom-document.cxx
+index e0400b1..8871dbc 100644
+--- a/src/libcmis/atom-document.cxx
++++ b/src/libcmis/atom-document.cxx
+@@ -43,7 +43,6 @@ using namespace libcmis;
+ 
+ AtomDocument::AtomDocument( AtomPubSession* session ) :
+     libcmis::Object( session ),
+-    libcmis::Document( session ),
+     AtomObject( session ),
+     m_contentUrl( )
+ {
+@@ -52,7 +51,6 @@ AtomDocument::AtomDocument( AtomPubSession* session ) :
+ 
+ AtomDocument::AtomDocument( AtomPubSession* session, xmlNodePtr entryNd ) :
+     libcmis::Object( session ),
+-    libcmis::Document( session ),
+     AtomObject( session ),
+     m_contentUrl( )
+ {
+diff --git a/src/libcmis/atom-folder.cxx b/src/libcmis/atom-folder.cxx
+index 5e41194..25276a1 100644
+--- a/src/libcmis/atom-folder.cxx
++++ b/src/libcmis/atom-folder.cxx
+@@ -46,7 +46,6 @@ namespace
+ 
+ AtomFolder::AtomFolder( AtomPubSession* session, xmlNodePtr entryNd ) :
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     AtomObject( session )
+ {
+     xmlDocPtr doc = libcmis::wrapInDoc( entryNd );
+diff --git a/src/libcmis/gdrive-document.cxx b/src/libcmis/gdrive-document.cxx
+index ecb13d6..a826cf7 100644
+--- a/src/libcmis/gdrive-document.cxx
++++ b/src/libcmis/gdrive-document.cxx
+@@ -40,7 +40,6 @@ using namespace libcmis;
+ 
+ GDriveDocument::GDriveDocument( GDriveSession* session ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     GDriveObject( session ),
+     m_isGoogleDoc( false )
+ {
+@@ -48,7 +47,6 @@ GDriveDocument::GDriveDocument( GDriveSession* session ) :
+ 
+ GDriveDocument::GDriveDocument( GDriveSession* session, Json json, string id, 
string name ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     GDriveObject( session, json, id, name ),
+     m_isGoogleDoc( false )
+ {
+diff --git a/src/libcmis/gdrive-folder.cxx b/src/libcmis/gdrive-folder.cxx
+index 26de89b..3aa5faf 100644
+--- a/src/libcmis/gdrive-folder.cxx
++++ b/src/libcmis/gdrive-folder.cxx
+@@ -38,14 +38,12 @@ using namespace libcmis;
+ 
+ GDriveFolder::GDriveFolder( GDriveSession* session ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     GDriveObject( session )
+ {
+ }
+ 
+ GDriveFolder::GDriveFolder( GDriveSession* session, Json json ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     GDriveObject( session, json )
+ {
+ }
+diff --git a/src/libcmis/onedrive-document.cxx 
b/src/libcmis/onedrive-document.cxx
+index 863a92f..ced64e0 100644
+--- a/src/libcmis/onedrive-document.cxx
++++ b/src/libcmis/onedrive-document.cxx
+@@ -40,14 +40,12 @@ using namespace libcmis;
+ 
+ OneDriveDocument::OneDriveDocument( OneDriveSession* session ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     OneDriveObject( session )
+ {
+ }
+ 
+ OneDriveDocument::OneDriveDocument( OneDriveSession* session, Json json, 
string id, string name ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     OneDriveObject( session, json, id, name )
+ {
+ }
+diff --git a/src/libcmis/onedrive-folder.cxx b/src/libcmis/onedrive-folder.cxx
+index c1980c8..3fa455a 100644
+--- a/src/libcmis/onedrive-folder.cxx
++++ b/src/libcmis/onedrive-folder.cxx
+@@ -38,14 +38,12 @@ using namespace libcmis;
+ 
+ OneDriveFolder::OneDriveFolder( OneDriveSession* session ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     OneDriveObject( session )
+ {
+ }
+ 
+ OneDriveFolder::OneDriveFolder( OneDriveSession* session, Json json ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     OneDriveObject( session, json )
+ {
+ }
+diff --git a/src/libcmis/sharepoint-document.cxx 
b/src/libcmis/sharepoint-document.cxx
+index dec5527..61b4431 100644
+--- a/src/libcmis/sharepoint-document.cxx
++++ b/src/libcmis/sharepoint-document.cxx
+@@ -37,14 +37,12 @@ using namespace libcmis;
+ 
+ SharePointDocument::SharePointDocument( SharePointSession* session ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     SharePointObject( session )
+ {
+ }
+ 
+ SharePointDocument::SharePointDocument( SharePointSession* session, Json 
json, string parentId, string name ) :
+     libcmis::Object( session),
+-    libcmis::Document( session ),
+     SharePointObject( session, json, parentId, name )
+ {
+ }
+diff --git a/src/libcmis/sharepoint-folder.cxx 
b/src/libcmis/sharepoint-folder.cxx
+index e4da4a3..8bcb2db 100644
+--- a/src/libcmis/sharepoint-folder.cxx
++++ b/src/libcmis/sharepoint-folder.cxx
+@@ -38,14 +38,12 @@ using namespace libcmis;
+ 
+ SharePointFolder::SharePointFolder( SharePointSession* session ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     SharePointObject( session )
+ {
+ }
+ 
+ SharePointFolder::SharePointFolder( SharePointSession* session, Json json, 
string parentId ):
+     libcmis::Object( session ),
+-    libcmis::Folder( session ),
+     SharePointObject( session, json, parentId )
+ {
+ }
+diff --git a/src/libcmis/ws-document.cxx b/src/libcmis/ws-document.cxx
+index ba2f2bc..c085d5b 100644
+--- a/src/libcmis/ws-document.cxx
++++ b/src/libcmis/ws-document.cxx
+@@ -33,7 +33,6 @@ using libcmis::PropertyPtrMap;
+ 
+ WSDocument::WSDocument( const WSObject& object ) :
+     libcmis::Object( object ),
+-    libcmis::Document( const_cast< WSObject& >( object ).getSession( ) ),
+     WSObject( object )
+ {
+ }
+diff --git a/src/libcmis/ws-folder.cxx b/src/libcmis/ws-folder.cxx
+index 4e82ac2..aca0543 100644
+--- a/src/libcmis/ws-folder.cxx
++++ b/src/libcmis/ws-folder.cxx
+@@ -33,7 +33,6 @@ using libcmis::PropertyPtrMap;
+ 
+ WSFolder::WSFolder( const WSObject& object ) :
+     libcmis::Object( object ),
+-    libcmis::Folder( const_cast< WSObject& >( object ).getSession( ) ),
+     WSObject( object )
+ {
+ }
+-- 
+2.43.0.windows.1
+
diff --git a/external/libcmis/UnpackedTarball_libcmis.mk 
b/external/libcmis/UnpackedTarball_libcmis.mk
index 976fc8930e92..e9c22b9b9338 100644
--- a/external/libcmis/UnpackedTarball_libcmis.mk
+++ b/external/libcmis/UnpackedTarball_libcmis.mk
@@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libcmis,1))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libcmis,\
        external/libcmis/0001-cid-1545775-COPY_INSTEAD_OF_MOVE.patch \
+       external/libcmis/0001-Fix-warning-C4589-when-building-with-MSVC.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/include/oox/helper/binaryinputstream.hxx 
b/include/oox/helper/binaryinputstream.hxx
index e27b2def9c9c..92e4aa1495af 100644
--- a/include/oox/helper/binaryinputstream.hxx
+++ b/include/oox/helper/binaryinputstream.hxx
@@ -188,9 +188,7 @@ public:
     void         copyToStream( BinaryOutputStream& rOutStrm );
 
 protected:
-    /** This dummy default c'tor will never call the c'tor of the virtual base
-        class BinaryStreamBase as this class cannot be instantiated directly. 
*/
-    BinaryInputStream() : BinaryStreamBase( false ) {}
+    BinaryInputStream() = default;
 
 private:
     BinaryInputStream( BinaryInputStream const& ) = delete;
diff --git a/include/oox/helper/binaryoutputstream.hxx 
b/include/oox/helper/binaryoutputstream.hxx
index c1dc8ebb0e7e..67a7af646c6d 100644
--- a/include/oox/helper/binaryoutputstream.hxx
+++ b/include/oox/helper/binaryoutputstream.hxx
@@ -88,9 +88,7 @@ public:
     void writeUnicodeArray( const OUString& rString );
 
 protected:
-    /** This dummy default c'tor will never call the c'tor of the virtual base
-        class BinaryStreamBase as this class cannot be instantiated directly. 
*/
-    BinaryOutputStream() : BinaryStreamBase( false ) {}
+    BinaryOutputStream() = default;
 
 private:
     BinaryOutputStream( BinaryOutputStream const& ) = delete;

Reply via email to