connectivity/source/drivers/evoab2/EApi.cxx | 27 +++++++++++++++------------ cui/source/options/optgdlg.cxx | 10 ++++++++++ include/vcl/svapp.hxx | 6 ++++++ sal/osl/unx/tempfile.cxx | 14 +++++++------- vcl/inc/svdata.hxx | 1 + vcl/inc/unx/salinst.h | 2 +- vcl/source/app/svapp.cxx | 9 +++++++++ vcl/source/app/svmain.cxx | 5 +++++ vcl/unx/generic/app/salinst.cxx | 9 +++++++++ vcl/unx/gtk/gtkinst.cxx | 8 ++++++++ vcl/unx/kde4/KDESalInstance.cxx | 8 ++++++++ vcl/unx/kde4/KDESalInstance.hxx | 2 +- 12 files changed, 80 insertions(+), 21 deletions(-)
New commits: commit d967cc35fd0c77d9f3dd0b3d0c7df850db6ec274 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Feb 18 11:25:26 2016 +0000 Resolves: tdf#97904 opengl stuff isn't implemented for gtk3 Change-Id: I1abbceebadf320f28955f54058b2d0ebfc79b9bc diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index 8e2bd66..f4d4d5c 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -629,6 +629,14 @@ OfaViewTabPage::OfaViewTabPage(vcl::Window* pParent, const SfxItemSet& rSet) get(m_pMousePosLB, "mousepos"); get(m_pMouseMiddleLB, "mousemiddle"); + if (Application::GetToolkitName() == "gtk3") + { + m_pUseOpenGL->Hide(); + m_pForceOpenGL->Hide(); + m_pOpenGLStatusEnabled->Hide(); + m_pOpenGLStatusDisabled->Hide(); + } + #if defined( UNX ) m_pFontAntiAliasing->SetToggleHdl( LINK( this, OfaViewTabPage, OnAntialiasingToggled ) ); #else @@ -969,6 +977,8 @@ void OfaViewTabPage::Reset( const SfxItemSet* ) void OfaViewTabPage::UpdateOGLStatus() { + if (Application::GetToolkitName() == "gtk3") + return; // Easier than a custom translation string. bool bEnabled = OpenGLWrapper::isVCLOpenGLEnabled(); m_pOpenGLStatusEnabled->Show(bEnabled); diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx index dcb8057..c4e06cb 100644 --- a/include/vcl/svapp.hxx +++ b/include/vcl/svapp.hxx @@ -981,6 +981,12 @@ public: */ static OUString GetDisplayName(); + /** Get the toolkit's name. e.g. gtk3 + + @returns The toolkit name. + */ + static OUString GetToolkitName(); + /** Get the number of screens available for the display. @returns The number of screens available. diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 628f45d..42df79e 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -113,6 +113,7 @@ struct ImplSVAppData OUString* mpAppName; // Application name OUString* mpAppFileName; // Abs. Application FileName OUString* mpDisplayName; // Application Display Name + OUString* mpToolkitName; // Toolkit Name Help* mpHelp; // Application help PopupMenu* mpActivePopupMenu; // Actives Popup-Menu (in Execute) ImplIdleMgr* mpIdleMgr; // Idle-Manager diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h index ac90ca2..85d7ff6 100644 --- a/vcl/inc/unx/salinst.h +++ b/vcl/inc/unx/salinst.h @@ -45,7 +45,7 @@ protected: SalXLib *mpXLib; public: - X11SalInstance( SalYieldMutex* pMutex ) : SalGenericInstance( pMutex ), mpXLib(NULL) {} + explicit X11SalInstance(SalYieldMutex* pMutex); virtual ~X11SalInstance(); virtual SalFrame* CreateChildFrame( SystemParentData* pParent, SalFrameStyleFlags nStyle ) override; diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index 2ed5292..10ad441 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -1399,6 +1399,15 @@ void Application::SetDialogScaleX( short nScale ) pSVData->maGDIData.mnAppFontX += (pSVData->maGDIData.mnAppFontX*nScale)/100; } +OUString Application::GetToolkitName() +{ + ImplSVData* pSVData = ImplGetSVData(); + if ( pSVData->maAppData.mpToolkitName ) + return *(pSVData->maAppData.mpToolkitName); + else + return OUString(); +} + void Application::SetDefDialogParent( vcl::Window* pWindow ) { ImplGetSVData()->maWinData.mpDefDialogParent = pWindow; diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index c7bcb91..1546bc3 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -504,6 +504,11 @@ void DeInitVCL() delete pSVData->maAppData.mpDisplayName; pSVData->maAppData.mpDisplayName = nullptr; } + if ( pSVData->maAppData.mpToolkitName ) + { + delete pSVData->maAppData.mpToolkitName; + pSVData->maAppData.mpToolkitName = nullptr; + } if ( pSVData->maAppData.mpEventListeners ) { delete pSVData->maAppData.mpEventListeners; diff --git a/vcl/unx/generic/app/salinst.cxx b/vcl/unx/generic/app/salinst.cxx index 0ead21f..c94f800 100644 --- a/vcl/unx/generic/app/salinst.cxx +++ b/vcl/unx/generic/app/salinst.cxx @@ -65,6 +65,15 @@ extern "C" } } +X11SalInstance::X11SalInstance(SalYieldMutex* pMutex) + : SalGenericInstance(pMutex) + , mpXLib(nullptr) +{ + ImplSVData* pSVData = ImplGetSVData(); + delete pSVData->maAppData.mpToolkitName; + pSVData->maAppData.mpToolkitName = new OUString("x11"); +} + X11SalInstance::~X11SalInstance() { // close session management diff --git a/vcl/unx/gtk/gtkinst.cxx b/vcl/unx/gtk/gtkinst.cxx index a1b7522..a37102e 100644 --- a/vcl/unx/gtk/gtkinst.cxx +++ b/vcl/unx/gtk/gtkinst.cxx @@ -186,6 +186,14 @@ void GtkInstance::EnsureInit() InitAtkBridge(); + ImplSVData* pSVData = ImplGetSVData(); + delete pSVData->maAppData.mpToolkitName; +#if GTK_CHECK_VERSION(3,0,0) + pSVData->maAppData.mpToolkitName = new OUString("gtk3"); +#else + pSVData->maAppData.mpToolkitName = new OUString("gtk2"); +#endif + bNeedsInit = false; } diff --git a/vcl/unx/kde4/KDESalInstance.cxx b/vcl/unx/kde4/KDESalInstance.cxx index e28fb2d..86c9d8f 100644 --- a/vcl/unx/kde4/KDESalInstance.cxx +++ b/vcl/unx/kde4/KDESalInstance.cxx @@ -26,6 +26,14 @@ using namespace com::sun::star; +KDESalInstance::KDESalInstance(SalYieldMutex* pMutex) + : X11SalInstance(pMutex) +{ + ImplSVData* pSVData = ImplGetSVData(); + delete pSVData->maAppData.mpToolkitName; + pSVData->maAppData.mpToolkitName = new OUString("kde4"); +} + SalFrame* KDESalInstance::CreateFrame( SalFrame *pParent, SalFrameStyleFlags nState ) { return new KDESalFrame( pParent, nState ); diff --git a/vcl/unx/kde4/KDESalInstance.hxx b/vcl/unx/kde4/KDESalInstance.hxx index 8eabb3b..aaa8d2f 100644 --- a/vcl/unx/kde4/KDESalInstance.hxx +++ b/vcl/unx/kde4/KDESalInstance.hxx @@ -27,7 +27,7 @@ class SalFrame; class KDESalInstance : public X11SalInstance { public: - explicit KDESalInstance( SalYieldMutex* pMutex ) : X11SalInstance( pMutex ) {} + explicit KDESalInstance(SalYieldMutex* pMutex); virtual ~KDESalInstance() {} virtual SalFrame* CreateFrame( SalFrame* pParent, SalFrameStyleFlags nStyle ) override; commit f752a223d19fd52d4e1dd7defa3e134388458f18 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Feb 18 10:43:02 2016 +0000 coverity#1352441 silence Resource leak Change-Id: Ib7d771098d640e17a9503d2d780051e916fa6bb3 diff --git a/connectivity/source/drivers/evoab2/EApi.cxx b/connectivity/source/drivers/evoab2/EApi.cxx index 342d446..fc81a19 100644 --- a/connectivity/source/drivers/evoab2/EApi.cxx +++ b/connectivity/source/drivers/evoab2/EApi.cxx @@ -17,7 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include <rtl/ustring.hxx> -#include <osl/module.h> +#include <osl/module.hxx> #define DECLARE_FN_POINTERS 1 #include "EApi.h" static const char *eBookLibNames[] = { @@ -109,12 +109,12 @@ static const ApiMap aClientApiMap38[] = #undef SYM_MAP template<size_t N> static bool -tryLink( oslModule &aModule, const char *pName, const ApiMap (&pMap)[N]) +tryLink( osl::Module &rModule, const char *pName, const ApiMap (&pMap)[N]) { for (size_t i = 0; i < N; ++i) { - SymbolFunc aMethod = reinterpret_cast<SymbolFunc>(osl_getFunctionSymbol - (aModule, OUString::createFromAscii ( pMap[ i ].sym_name ).pData)); + SymbolFunc aMethod = reinterpret_cast<SymbolFunc>( + rModule.getFunctionSymbol(OUString::createFromAscii(pMap[i].sym_name))); if( !aMethod ) { fprintf( stderr, "Warning: missing symbol '%s' in '%s'\n", @@ -128,15 +128,11 @@ tryLink( oslModule &aModule, const char *pName, const ApiMap (&pMap)[N]) bool EApiInit() { - oslModule aModule; - for( guint j = 0; j < G_N_ELEMENTS( eBookLibNames ); j++ ) { - aModule = osl_loadModule( OUString::createFromAscii - ( eBookLibNames[ j ] ).pData, - SAL_LOADMODULE_DEFAULT ); + osl::Module aModule(OUString::createFromAscii(eBookLibNames[j]), SAL_LOADMODULE_DEFAULT); - if( aModule == nullptr) + if (!aModule.is()) continue; if (tryLink( aModule, eBookLibNames[ j ], aCommonApiMap)) @@ -144,24 +140,31 @@ bool EApiInit() if (eds_check_version( 3, 6, 0 ) != nullptr) { if (tryLink( aModule, eBookLibNames[ j ], aOldApiMap)) + { + aModule.release(); return true; + } } else if (tryLink( aModule, eBookLibNames[ j ], aNewApiMap)) { if (eds_check_version( 3, 7, 6 ) != nullptr) { if (tryLink( aModule, eBookLibNames[ j ], aClientApiMap36)) + { + aModule.release(); return true; + } } else { if (tryLink( aModule, eBookLibNames[ j ], aClientApiMap38)) + { + aModule.release(); return true; + } } } } - - osl_unloadModule( aModule ); } fprintf( stderr, "Can find no compliant libebook client libraries\n" ); return false; commit 88c2e8bf6e13b943f0ada9a00a6863beb8f12e9b Author: Caolán McNamara <caol...@redhat.com> Date: Thu Feb 18 10:33:34 2016 +0000 coverity#1352316 Explicit null dereferenced Change-Id: Ieb80209e0254080bf78fb3b5201b849d7d30880c diff --git a/sal/osl/unx/tempfile.cxx b/sal/osl/unx/tempfile.cxx index d6e7941..69607b3 100644 --- a/sal/osl/unx/tempfile.cxx +++ b/sal/osl/unx/tempfile.cxx @@ -270,7 +270,6 @@ oslFileError SAL_CALL osl_createTempFile( rtl_uString** ppustrTempFileURL) { rtl_uString* base_directory = nullptr; - rtl_uString* temp_file_name = nullptr; oslFileHandle temp_file_handle; sal_Bool b_delete_on_close; oslFileError osl_error; @@ -285,16 +284,19 @@ oslFileError SAL_CALL osl_createTempFile( if (osl_File_E_None != osl_error) return osl_error; + rtl_uString* temp_file_name = nullptr; osl_error = osl_create_temp_file_impl_( base_directory, &temp_file_handle, &temp_file_name); + rtl_uString* temp_file_url = nullptr; if (osl_File_E_None == osl_error) { - rtl_uString* temp_file_url = nullptr; - - /* assuming this works */ - osl_getFileURLFromSystemPath(temp_file_name, &temp_file_url); + osl_error = osl_getFileURLFromSystemPath(temp_file_name, &temp_file_url); + rtl_uString_release(temp_file_name); + } + if (osl_File_E_None == osl_error) + { if (b_delete_on_close) { osl_error = osl_removeFile(temp_file_url); @@ -315,8 +317,6 @@ oslFileError SAL_CALL osl_createTempFile( } rtl_uString_release(temp_file_url); - - rtl_uString_release(temp_file_name); } rtl_uString_release(base_directory);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits