[Libreoffice-commits] core.git: 3 commits - connectivity/source cui/source include/vcl sal/osl vcl/inc vcl/source vcl/unx
Caolán McNamara
caolanm at redhat.com
Thu Feb 18 11:26:36 UTC 2016
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 <caolanm at 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 <caolanm at 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 <caolanm at 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);
More information about the Libreoffice-commits
mailing list