summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2021-11-23 14:05:20 +0100
committerLuboš Luňák <l.lunak@collabora.com>2021-11-23 16:07:53 +0100
commit3f66e00c937f787129bac034798b74d5b72ef76f (patch)
tree541448c193ae04518ad2ae417641a81d83e78614 /include
parenta884f0596cf4d519f2e8e75737a108d134185f9b (diff)
make a bunch of svl::SharedString functions inline
They are tiny and they are used in performance-critical parts of Calc. Change-Id: If227b11ac7929dd1369545a590d8ef1a977185f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125698 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'include')
-rw-r--r--include/svl/sharedstring.hxx83
1 files changed, 83 insertions, 0 deletions
diff --git a/include/svl/sharedstring.hxx b/include/svl/sharedstring.hxx
index f74824adeec2..050bd8dd9e55 100644
--- a/include/svl/sharedstring.hxx
+++ b/include/svl/sharedstring.hxx
@@ -50,6 +50,89 @@ public:
sal_Int32 getLength() const;
};
+inline SharedString::SharedString() : mpData(nullptr), mpDataIgnoreCase(nullptr) {}
+
+inline SharedString::SharedString( rtl_uString* pData, rtl_uString* pDataIgnoreCase ) :
+ mpData(pData), mpDataIgnoreCase(pDataIgnoreCase)
+{
+ if (mpData)
+ rtl_uString_acquire(mpData);
+ if (mpDataIgnoreCase)
+ rtl_uString_acquire(mpDataIgnoreCase);
+}
+
+inline SharedString::SharedString( const OUString& rStr ) : mpData(rStr.pData), mpDataIgnoreCase(nullptr)
+{
+ rtl_uString_acquire(mpData);
+}
+
+inline SharedString::SharedString( const SharedString& r ) : mpData(r.mpData), mpDataIgnoreCase(r.mpDataIgnoreCase)
+{
+ if (mpData)
+ rtl_uString_acquire(mpData);
+ if (mpDataIgnoreCase)
+ rtl_uString_acquire(mpDataIgnoreCase);
+}
+
+inline SharedString::SharedString(SharedString&& r) noexcept : mpData(r.mpData), mpDataIgnoreCase(r.mpDataIgnoreCase)
+{
+ r.mpData = nullptr;
+ r.mpDataIgnoreCase = nullptr;
+}
+
+inline SharedString::~SharedString()
+{
+ if (mpData)
+ rtl_uString_release(mpData);
+ if (mpDataIgnoreCase)
+ rtl_uString_release(mpDataIgnoreCase);
+}
+
+inline bool SharedString::operator!= ( const SharedString& r ) const
+{
+ return !operator== (r);
+}
+
+inline OUString SharedString::getString() const
+{
+ return mpData ? OUString(mpData) : OUString();
+}
+
+inline rtl_uString* SharedString::getData()
+{
+ return mpData;
+}
+
+inline const rtl_uString* SharedString::getData() const
+{
+ return mpData;
+}
+
+inline rtl_uString* SharedString::getDataIgnoreCase()
+{
+ return mpDataIgnoreCase;
+}
+
+inline const rtl_uString* SharedString::getDataIgnoreCase() const
+{
+ return mpDataIgnoreCase;
+}
+
+inline bool SharedString::isValid() const
+{
+ return mpData != nullptr;
+}
+
+inline bool SharedString::isEmpty() const
+{
+ return mpData == nullptr || mpData->length == 0;
+}
+
+inline sal_Int32 SharedString::getLength() const
+{
+ return mpData ? mpData->length : 0;
+}
+
}
#endif