include/tools/wldcrd.hxx     |   10 +++++-----
 tools/source/fsys/wldcrd.cxx |    9 ++++-----
 2 files changed, 9 insertions(+), 10 deletions(-)

New commits:
commit 990b2cb056788f7f412656a303456d90c003cf83
Author:     Noel Grandin <n...@peralex.com>
AuthorDate: Mon Jun 21 13:00:07 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Jun 22 08:41:58 2021 +0200

    simplify and improve Wildcard
    
    it is faster to just process OUString data, rather than perform
    expensive conversion to OString and back again.
    
    Change-Id: Ie007b872ee507ac5c6e8b55cc0a49ef3ac1f0139
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117608
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/tools/wldcrd.hxx b/include/tools/wldcrd.hxx
index fd127a30a1af..b50bbcd11fc9 100644
--- a/include/tools/wldcrd.hxx
+++ b/include/tools/wldcrd.hxx
@@ -30,10 +30,10 @@
 class SAL_WARN_UNUSED TOOLS_DLLPUBLIC WildCard
 {
 private:
-    OString aWildString;
+    OUString aWildString;
     char cSepSymbol;
 
-    static bool ImpMatch( const char *pWild, const char *pStr );
+    static bool ImpMatch( const sal_Unicode *pWild, const sal_Unicode *pStr );
 
 public:
     WildCard()
@@ -43,19 +43,19 @@ public:
     }
 
     WildCard(std::u16string_view rWildCard, const char cSeparator = '\0')
-        : aWildString(OUStringToOString(rWildCard, 
osl_getThreadTextEncoding()))
+        : aWildString(rWildCard)
         , cSepSymbol(cSeparator)
     {
     }
 
     OUString getGlob() const
     {
-        return OStringToOUString(aWildString, osl_getThreadTextEncoding());
+        return aWildString;
     }
 
     void setGlob(std::u16string_view rString)
     {
-        aWildString = OUStringToOString(rString, osl_getThreadTextEncoding());
+        aWildString = rString;
     }
 
     bool Matches( std::u16string_view rStr ) const;
diff --git a/tools/source/fsys/wldcrd.cxx b/tools/source/fsys/wldcrd.cxx
index 7608549665ca..6e0259696aca 100644
--- a/tools/source/fsys/wldcrd.cxx
+++ b/tools/source/fsys/wldcrd.cxx
@@ -25,7 +25,7 @@
  * '?' in pWild mean match exactly one character.
  *
  */
-bool WildCard::ImpMatch( const char *pWild, const char *pStr )
+bool WildCard::ImpMatch( const sal_Unicode *pWild, const sal_Unicode *pStr )
 {
     int    pos=0;
     int    flag=0;
@@ -88,8 +88,7 @@ bool WildCard::ImpMatch( const char *pWild, const char *pStr )
 
 bool WildCard::Matches( std::u16string_view rString ) const
 {
-    OString aTmpWild = aWildString;
-    OString aString(OUStringToOString(rString, osl_getThreadTextEncoding()));
+    OUString aTmpWild = aWildString;
 
     sal_Int32 nSepPos;
 
@@ -98,13 +97,13 @@ bool WildCard::Matches( std::u16string_view rString ) const
         while ( (nSepPos = aTmpWild.indexOf(cSepSymbol)) != -1 )
         {
             // Check all split wildcards
-            if ( ImpMatch( aTmpWild.copy( 0, nSepPos ).getStr(), 
aString.getStr() ) )
+            if ( ImpMatch( aTmpWild.subView( 0, nSepPos ).data(), 
rString.data() ) )
                 return true;
             aTmpWild = aTmpWild.copy(nSepPos + 1); // remove separator
         }
     }
 
-    return ImpMatch( aTmpWild.getStr(), aString.getStr() );
+    return ImpMatch( aTmpWild.getStr(), rString.data() );
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to