[Libreoffice-commits] core.git: 2 commits - include/vcl ucb/source vcl/headless vcl/inc vcl/unx

Stephan Bergmann sbergman at redhat.com
Wed Sep 4 02:28:14 PDT 2013


 include/vcl/sysdata.hxx                      |    2 
 ucb/source/cacher/cachedcontentresultset.cxx |  180 +++++++++++++--------------
 ucb/source/cacher/cachedcontentresultset.hxx |    3 
 vcl/headless/svpdummies.cxx                  |    4 
 vcl/headless/svpframe.cxx                    |    4 
 vcl/inc/headless/svpdummies.hxx              |    2 
 vcl/inc/unx/gtk/gtkobject.hxx                |    2 
 vcl/inc/unx/salframe.h                       |    2 
 vcl/inc/unx/salobj.h                         |    2 
 vcl/inc/win/salobj.h                         |    2 
 vcl/unx/generic/window/salframe.cxx          |    4 
 vcl/unx/generic/window/salobj.cxx            |    6 
 vcl/unx/gtk/window/gtkobject.cxx             |    2 
 vcl/unx/gtk/window/gtksalframe.cxx           |    2 
 14 files changed, 112 insertions(+), 105 deletions(-)

New commits:
commit ed87e4c4b09d0f623c350528a4f6a6d049735bd1
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Sep 3 23:14:40 2013 +0200

    Replace XROW_GETXXX macro with template
    
    Change-Id: Ibd476f9a60dcc15be3b330d738faf56781998dfc

diff --git a/ucb/source/cacher/cachedcontentresultset.cxx b/ucb/source/cacher/cachedcontentresultset.cxx
index 52e7d2f..0c692fd 100644
--- a/ucb/source/cacher/cachedcontentresultset.cxx
+++ b/ucb/source/cacher/cachedcontentresultset.cxx
@@ -42,74 +42,70 @@ using namespace cppu;
 #define COMSUNSTARUCBCCRS_DEFAULT_FETCH_SIZE 256
 #define COMSUNSTARUCBCCRS_DEFAULT_FETCH_DIRECTION FetchDirection::FORWARD
 
-//--------------------------------------------------------------------------
-//--------------------------------------------------------------------------
-//define for getXXX methods of interface XRow
-//--------------------------------------------------------------------------
-//--------------------------------------------------------------------------
+//if you change this function template please pay attention to
+//function getObject, where this is similar implemented
+
+template<typename T> T CachedContentResultSet::rowOriginGet(
+    T (SAL_CALL css::sdbc::XRow::* f)(sal_Int32), sal_Int32 columnIndex)
+{
+    impl_EnsureNotDisposed();
+    ReacquireableGuard aGuard( m_aMutex );
+    sal_Int32 nRow = m_nRow;
+    sal_Int32 nFetchSize = m_nFetchSize;
+    sal_Int32 nFetchDirection = m_nFetchDirection;
+    if( !m_aCache.hasRow( nRow ) )
+    {
+        if( !m_aCache.hasCausedException( nRow ) )
+        {
+            if( !m_xFetchProvider.is() )
+            {
+                OSL_FAIL( "broadcaster was disposed already" );
+                throw SQLException();
+            }
+            aGuard.clear();
+            if( impl_isForwardOnly() )
+                applyPositionToOrigin( nRow );
 
-//if you change this macro please pay attention to
-//function ::getObject, where this is similar implemented
-
-#define XROW_GETXXX( getXXX, Type )                     \
-impl_EnsureNotDisposed();                               \
-ReacquireableGuard aGuard( m_aMutex );                  \
-sal_Int32 nRow = m_nRow;                                \
-sal_Int32 nFetchSize = m_nFetchSize;                    \
-sal_Int32 nFetchDirection = m_nFetchDirection;          \
-if( !m_aCache.hasRow( nRow ) )                          \
-{                                                       \
-    if( !m_aCache.hasCausedException( nRow ) )          \
-{                                                       \
-        if( !m_xFetchProvider.is() )                    \
-        {                                               \
-            OSL_FAIL( "broadcaster was disposed already" ); \
-            throw SQLException();                       \
-        }                                               \
-        aGuard.clear();                                 \
-        if( impl_isForwardOnly() )                      \
-            applyPositionToOrigin( nRow );              \
-                                                        \
-        impl_fetchData( nRow, nFetchSize, nFetchDirection ); \
-    }                                                   \
-    aGuard.reacquire();                                 \
-    if( !m_aCache.hasRow( nRow ) )                      \
-    {                                                   \
-        m_bLastReadWasFromCache = sal_False;            \
-        aGuard.clear();                                 \
-        applyPositionToOrigin( nRow );                  \
-        impl_init_xRowOrigin();                         \
-        return m_xRowOrigin->getXXX( columnIndex );     \
-    }                                                   \
-}                                                       \
-const Any& rValue = m_aCache.getAny( nRow, columnIndex );\
-Type aRet = Type();                                     \
-m_bLastReadWasFromCache = sal_True;                     \
-m_bLastCachedReadWasNull = !( rValue >>= aRet );        \
-/* Last chance. Try type converter service... */        \
-if ( m_bLastCachedReadWasNull && rValue.hasValue() )    \
-{                                                       \
-    Reference< XTypeConverter > xConverter              \
-                                = getTypeConverter();   \
-    if ( xConverter.is() )                              \
-    {                                                   \
-        try                                             \
-        {                                               \
-            Any aConvAny = xConverter->convertTo(       \
-                rValue,                                 \
-                getCppuType( static_cast<               \
-                    const Type * >( 0 ) ) );            \
-            m_bLastCachedReadWasNull = !( aConvAny >>= aRet ); \
-        }                                               \
-        catch (const IllegalArgumentException&)         \
-        {                                               \
-        }                                               \
-        catch (const CannotConvertException&)           \
-        {                                               \
-        }                                               \
-    }                                                   \
-}                                                       \
-return aRet;
+            impl_fetchData( nRow, nFetchSize, nFetchDirection );
+        }
+        aGuard.reacquire();
+        if( !m_aCache.hasRow( nRow ) )
+        {
+            m_bLastReadWasFromCache = sal_False;
+            aGuard.clear();
+            applyPositionToOrigin( nRow );
+            impl_init_xRowOrigin();
+            return (m_xRowOrigin.get()->*f)( columnIndex );
+        }
+    }
+    const Any& rValue = m_aCache.getAny( nRow, columnIndex );
+    T aRet = T();
+    m_bLastReadWasFromCache = sal_True;
+    m_bLastCachedReadWasNull = !( rValue >>= aRet );
+    /* Last chance. Try type converter service... */
+    if ( m_bLastCachedReadWasNull && rValue.hasValue() )
+    {
+        Reference< XTypeConverter > xConverter = getTypeConverter();
+        if ( xConverter.is() )
+        {
+            try
+            {
+                Any aConvAny = xConverter->convertTo(
+                    rValue,
+                    getCppuType( static_cast<
+                                 const T * >( 0 ) ) );
+                m_bLastCachedReadWasNull = !( aConvAny >>= aRet );
+            }
+            catch (const IllegalArgumentException&)
+            {
+            }
+            catch (const CannotConvertException&)
+            {
+            }
+        }
+    }
+    return aRet;
+}
 
 //--------------------------------------------------------------------------
 //--------------------------------------------------------------------------
@@ -1924,7 +1920,7 @@ OUString SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getString, OUString );
+    return rowOriginGet<OUString>(&css::sdbc::XRow::getString, columnIndex);
 }
 
 //virtual
@@ -1933,7 +1929,7 @@ sal_Bool SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getBoolean, sal_Bool );
+    return rowOriginGet<sal_Bool>(&css::sdbc::XRow::getBoolean, columnIndex);
 }
 
 //virtual
@@ -1942,7 +1938,7 @@ sal_Int8 SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getByte, sal_Int8 );
+    return rowOriginGet<sal_Int8>(&css::sdbc::XRow::getByte, columnIndex);
 }
 
 //virtual
@@ -1951,7 +1947,7 @@ sal_Int16 SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getShort, sal_Int16 );
+    return rowOriginGet<sal_Int16>(&css::sdbc::XRow::getShort, columnIndex);
 }
 
 //virtual
@@ -1960,7 +1956,7 @@ sal_Int32 SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getInt, sal_Int32 );
+    return rowOriginGet<sal_Int32>(&css::sdbc::XRow::getInt, columnIndex);
 }
 
 //virtual
@@ -1969,7 +1965,7 @@ sal_Int64 SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getLong, sal_Int64 );
+    return rowOriginGet<sal_Int64>(&css::sdbc::XRow::getLong, columnIndex);
 }
 
 //virtual
@@ -1978,7 +1974,7 @@ float SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getFloat, float );
+    return rowOriginGet<float>(&css::sdbc::XRow::getFloat, columnIndex);
 }
 
 //virtual
@@ -1987,7 +1983,7 @@ double SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getDouble, double );
+    return rowOriginGet<double>(&css::sdbc::XRow::getDouble, columnIndex);
 }
 
 //virtual
@@ -1996,7 +1992,8 @@ Sequence< sal_Int8 > SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getBytes, Sequence< sal_Int8 > );
+    return rowOriginGet< css::uno::Sequence<sal_Int8> >(
+        &css::sdbc::XRow::getBytes, columnIndex);
 }
 
 //virtual
@@ -2005,7 +2002,8 @@ Date SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getDate, Date );
+    return rowOriginGet<css::util::Date>(
+        &css::sdbc::XRow::getDate, columnIndex);
 }
 
 //virtual
@@ -2014,7 +2012,8 @@ Time SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getTime, Time );
+    return rowOriginGet<css::util::Time>(
+        &css::sdbc::XRow::getTime, columnIndex);
 }
 
 //virtual
@@ -2023,7 +2022,8 @@ DateTime SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getTimestamp, DateTime );
+    return rowOriginGet<css::util::DateTime>(
+        &css::sdbc::XRow::getTimestamp, columnIndex);
 }
 
 //virtual
@@ -2033,7 +2033,8 @@ Reference< com::sun::star::io::XInputStream >
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getBinaryStream, Reference< com::sun::star::io::XInputStream > );
+    return rowOriginGet< css::uno::Reference<css::io::XInputStream> >(
+        &css::sdbc::XRow::getBinaryStream, columnIndex);
 }
 
 //virtual
@@ -2043,7 +2044,8 @@ Reference< com::sun::star::io::XInputStream >
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getCharacterStream, Reference< com::sun::star::io::XInputStream > );
+    return rowOriginGet< css::uno::Reference<css::io::XInputStream> >(
+        &css::sdbc::XRow::getCharacterStream, columnIndex);
 }
 
 //virtual
@@ -2054,8 +2056,8 @@ Any SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    //if you change this macro please pay attention to
-    //define XROW_GETXXX, where this is similar implemented
+    //if you change this function please pay attention to
+    //function template rowOriginGet, where this is similar implemented
 
     ReacquireableGuard aGuard( m_aMutex );
     sal_Int32 nRow = m_nRow;
@@ -2098,7 +2100,8 @@ Reference< XRef > SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getRef, Reference< XRef > );
+    return rowOriginGet< css::uno::Reference<css::sdbc::XRef> >(
+        &css::sdbc::XRow::getRef, columnIndex);
 }
 
 //virtual
@@ -2107,7 +2110,8 @@ Reference< XBlob > SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getBlob, Reference< XBlob > );
+    return rowOriginGet< css::uno::Reference<css::sdbc::XBlob> >(
+        &css::sdbc::XRow::getBlob, columnIndex);
 }
 
 //virtual
@@ -2116,7 +2120,8 @@ Reference< XClob > SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getClob, Reference< XClob > );
+    return rowOriginGet< css::uno::Reference<css::sdbc::XClob> >(
+        &css::sdbc::XRow::getClob, columnIndex);
 }
 
 //virtual
@@ -2125,7 +2130,8 @@ Reference< XArray > SAL_CALL CachedContentResultSet
     throw( SQLException,
            RuntimeException )
 {
-    XROW_GETXXX( getArray, Reference< XArray > );
+    return rowOriginGet< css::uno::Reference<css::sdbc::XArray> >(
+        &css::sdbc::XRow::getArray, columnIndex);
 }
 
 //-----------------------------------------------------------------
diff --git a/ucb/source/cacher/cachedcontentresultset.hxx b/ucb/source/cacher/cachedcontentresultset.hxx
index 3d3df4b..bcb52ed 100644
--- a/ucb/source/cacher/cachedcontentresultset.hxx
+++ b/ucb/source/cacher/cachedcontentresultset.hxx
@@ -462,6 +462,9 @@ private:
 
     const com::sun::star::uno::Reference<
         com::sun::star::script::XTypeConverter >& getTypeConverter();
+
+    template<typename T> T rowOriginGet(
+        T (SAL_CALL css::sdbc::XRow::* f)(sal_Int32), sal_Int32 columnIndex);
 };
 
 //=========================================================================
commit e561a04792f0ae6fb618132655b7d6d5dd291ee1
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Sep 3 22:33:51 2013 +0200

    Remove unnecessary SystemChildData -> SystemEnvData define
    
    Change-Id: Ifd6763617b9aef45c7301085033b6bbaf9d52e02

diff --git a/include/vcl/sysdata.hxx b/include/vcl/sysdata.hxx
index 57b32e3..3cc6aad 100644
--- a/include/vcl/sysdata.hxx
+++ b/include/vcl/sysdata.hxx
@@ -83,8 +83,6 @@ struct SystemEnvData
 #endif
 };
 
-#define SystemChildData SystemEnvData
-
 // --------------------
 // - SystemParentData -
 // --------------------
diff --git a/vcl/headless/svpdummies.cxx b/vcl/headless/svpdummies.cxx
index a8c4eb6..c45076b 100644
--- a/vcl/headless/svpdummies.cxx
+++ b/vcl/headless/svpdummies.cxx
@@ -26,8 +26,8 @@
 SvpSalObject::SvpSalObject()
 {
     // fast and easy cross-platform wiping of the data
-    memset( (void *)&m_aSystemChildData, 0, sizeof( SystemChildData ) );
-    m_aSystemChildData.nSize = sizeof( SystemChildData );
+    memset( (void *)&m_aSystemChildData, 0, sizeof( SystemEnvData ) );
+    m_aSystemChildData.nSize = sizeof( SystemEnvData );
 }
 
 SvpSalObject::~SvpSalObject()
diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index 79b231ff..2ce3074 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -80,8 +80,8 @@ SvpSalFrame::SvpSalFrame( SvpSalInstance* pInstance,
     m_nMaxHeight( 0 )
 {
     // fast and easy cross-platform wiping of the data
-    memset( (void *)&m_aSystemChildData, 0, sizeof( SystemChildData ) );
-    m_aSystemChildData.nSize        = sizeof( SystemChildData );
+    memset( (void *)&m_aSystemChildData, 0, sizeof( SystemEnvData ) );
+    m_aSystemChildData.nSize        = sizeof( SystemEnvData );
 #ifdef IOS
     // Nothing
 #elif defined ANDROID
diff --git a/vcl/inc/headless/svpdummies.hxx b/vcl/inc/headless/svpdummies.hxx
index 01fc5f7..84cdf0e 100644
--- a/vcl/inc/headless/svpdummies.hxx
+++ b/vcl/inc/headless/svpdummies.hxx
@@ -30,7 +30,7 @@ class SalGraphics;
 class SvpSalObject : public SalObject
 {
 public:
-    SystemChildData m_aSystemChildData;
+    SystemEnvData m_aSystemChildData;
 
     SvpSalObject();
     virtual ~SvpSalObject();
diff --git a/vcl/inc/unx/gtk/gtkobject.hxx b/vcl/inc/unx/gtk/gtkobject.hxx
index df8ec1f2..1690908 100644
--- a/vcl/inc/unx/gtk/gtkobject.hxx
+++ b/vcl/inc/unx/gtk/gtkobject.hxx
@@ -27,7 +27,7 @@
 
 class GtkSalObject : public SalObject
 {
-    SystemChildData     m_aSystemData;
+    SystemEnvData     m_aSystemData;
     GtkWidget*          m_pSocket;
 #if GTK_CHECK_VERSION(3,0,0)
     cairo_region_t*     m_pRegion;
diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h
index 1a58b904..5d31839 100644
--- a/vcl/inc/unx/salframe.h
+++ b/vcl/inc/unx/salframe.h
@@ -120,7 +120,7 @@ class VCLPLUG_GEN_PUBLIC X11SalFrame : public SalFrame
 
     OUString   m_sWMClass;
 
-    SystemChildData maSystemChildData;
+    SystemEnvData maSystemChildData;
 
     SalI18N_InputContext *mpInputContext;
     Bool            mbInputFocus;
diff --git a/vcl/inc/unx/salobj.h b/vcl/inc/unx/salobj.h
index 464cd234..96e5570 100644
--- a/vcl/inc/unx/salobj.h
+++ b/vcl/inc/unx/salobj.h
@@ -60,7 +60,7 @@ private:
 class VCLPLUG_GEN_PUBLIC X11SalObject : public SalObject
 {
 public:
-    SystemChildData maSystemChildData;
+    SystemEnvData maSystemChildData;
     SalFrame*       mpParent;
     XLIB_Window     maPrimary;
     XLIB_Window     maSecondary;
diff --git a/vcl/inc/win/salobj.h b/vcl/inc/win/salobj.h
index 6826872..c0c6df9 100644
--- a/vcl/inc/win/salobj.h
+++ b/vcl/inc/win/salobj.h
@@ -32,7 +32,7 @@ public:
     HWND                    mhWnd;                  // Window handle
     HWND                    mhWndChild;             // Child Window handle
     HWND                    mhLastFocusWnd;         // Child-Window, welches als letztes den Focus hatte
-    SystemChildData         maSysData;              // SystemEnvData
+    SystemEnvData         maSysData;              // SystemEnvData
     RGNDATA*                mpClipRgnData;          // ClipRegion-Data
     RGNDATA*                mpStdClipRgnData;       // Cache Standard-ClipRegion-Data
     RECT*                   mpNextClipRect;         // Naechstes ClipRegion-Rect
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index 65bd389..6fe079c 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -857,10 +857,10 @@ void X11SalFrame::SetExtendedFrameStyle( SalExtStyle nStyle )
     }
 }
 
-const SystemChildData* X11SalFrame::GetSystemData() const
+const SystemEnvData* X11SalFrame::GetSystemData() const
 {
     X11SalFrame *pFrame = const_cast<X11SalFrame*>(this);
-    pFrame->maSystemChildData.nSize         = sizeof( SystemChildData );
+    pFrame->maSystemChildData.nSize         = sizeof( SystemEnvData );
     pFrame->maSystemChildData.pDisplay      = GetXDisplay();
     pFrame->maSystemChildData.aWindow       = pFrame->GetWindow();
     pFrame->maSystemChildData.pSalFrame     = pFrame;
diff --git a/vcl/unx/generic/window/salobj.cxx b/vcl/unx/generic/window/salobj.cxx
index 3026c5c..bc7dfbc 100644
--- a/vcl/unx/generic/window/salobj.cxx
+++ b/vcl/unx/generic/window/salobj.cxx
@@ -51,7 +51,7 @@ X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, SystemWindowData* p
 {
     int error_base, event_base;
     X11SalObject*       pObject  = new X11SalObject();
-    SystemChildData*    pObjData = const_cast<SystemChildData*>(pObject->GetSystemData());
+    SystemEnvData*    pObjData = const_cast<SystemEnvData*>(pObject->GetSystemData());
 
     if ( ! XShapeQueryExtension( (Display*)pObjData->pDisplay,
                                   &event_base, &error_base ) )
@@ -236,7 +236,7 @@ SalClipRegion::UnionClipRegion( long nX, long nY, long nWidth, long nHeight )
 
 X11SalObject::X11SalObject()
 {
-    maSystemChildData.nSize     = sizeof( SystemChildData );
+    maSystemChildData.nSize     = sizeof( SystemEnvData );
     maSystemChildData.pDisplay  = GetGenericData()->GetSalDisplay()->GetDisplay();
     maSystemChildData.aWindow       = None;
     maSystemChildData.pSalFrame = 0;
@@ -412,7 +412,7 @@ void X11SalObject::GrabFocus()
 
 // -----------------------------------------------------------------------
 
-const SystemChildData* X11SalObject::GetSystemData() const
+const SystemEnvData* X11SalObject::GetSystemData() const
 {
     return &maSystemChildData;
 }
diff --git a/vcl/unx/gtk/window/gtkobject.cxx b/vcl/unx/gtk/window/gtkobject.cxx
index b0fa39a..3ba5b06 100644
--- a/vcl/unx/gtk/window/gtkobject.cxx
+++ b/vcl/unx/gtk/window/gtkobject.cxx
@@ -52,7 +52,7 @@ GtkSalObject::GtkSalObject( GtkSalFrame* pParent, sal_Bool bShow )
 
         // system data
         SalDisplay* pDisp = GetGenericData()->GetSalDisplay();
-        m_aSystemData.nSize         = sizeof( SystemChildData );
+        m_aSystemData.nSize         = sizeof( SystemEnvData );
         m_aSystemData.pDisplay      = pDisp->GetDisplay();
         m_aSystemData.aWindow       = GDK_WINDOW_XWINDOW(widget_get_window(m_pSocket));
         m_aSystemData.pSalFrame     = NULL;
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index 44d894d..8eda04a 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -997,7 +997,7 @@ void GtkSalFrame::InitCommon()
     gtk_widget_realize( m_pWindow );
 
     //system data
-    m_aSystemData.nSize         = sizeof( SystemChildData );
+    m_aSystemData.nSize         = sizeof( SystemEnvData );
 #if !GTK_CHECK_VERSION(3,0,0)
     GtkSalDisplay* pDisp = GetGtkSalData()->GetGtkDisplay();
     m_aSystemData.pDisplay      = pDisp->GetDisplay();


More information about the Libreoffice-commits mailing list