OUString::indexOf with 1 char string parameter

Christophe JAILLET christophe.jaillet at wanadoo.fr
Tue Jul 10 13:58:58 PDT 2012


Hi,

before submitting patches on gerrit, I would like to have your feed back 
to make sure I'm right.

'OUString' have 'indexOf' that can find a substring (literal or 
OUString) or a char.
IMO, looking for a 1 char long string is the same as looking for this 
char itself. However, the later is faster. In some cases, we even 
allocate memory before doing the search !


Example #1: we allocate memory to build a 1 char long string and search 
for it
 >>>>>>>>>>>>>>>>>>
diff --git a/sc/source/ui/vba/vbafilesearch.cxx 
b/sc/source/ui/vba/vbafilesearch.cxx
index ddb5c04..220b2e2 100644
--- a/sc/source/ui/vba/vbafilesearch.cxx
+++ b/sc/source/ui/vba/vbafilesearch.cxx
@@ -180,7 +180,7 @@ sal_Int32 SAL_CALL ScVbaFileSearch::Execute( ) throw 
(css::uno::RuntimeExceptio
      if ( IsWildCard( aTempFileName ) )
      {
          bool bEndWithAsterisk = aTempFileName.endsWithAsciiL("*", 1);
-        bool bStartWithAsterisk = 
(aTempFileName.indexOf(::rtl::OUString("*")) == 0);
+        bool bStartWithAsterisk = (aTempFileName.indexOf('*')) == 0);
          if ( !bEndWithAsterisk && !bStartWithAsterisk )
          {
              aTempFileName = ::rtl::OUString("*") + aTempFileName + 
::rtl::OUString("*");
 >>>>>>>>>>>>>>>>>>

Example #2: we search for a 1 char string
 >>>>>>>>>>>>>>>>>>
diff --git a/shell/source/tools/lngconvex/lngconvex.cxx 
b/shell/source/tools/lngconvex/lngconvex.cxx
index 5b2ecb2..dce42ab 100644
--- a/shell/source/tools/lngconvex/lngconvex.cxx
+++ b/shell/source/tools/lngconvex/lngconvex.cxx
@@ -200,7 +200,7 @@ public:
  private:
      void init()
      {
-        sal_Int32 idx = lang_.indexOf("-");
+        sal_Int32 idx = lang_.indexOf('-');

          if (idx > -1)
          {
 >>>>>>>>>>>>>>>>>>

In both cases, I think it is safe to search only for the char irself.


There are a few of these that can be cleanup.
If you agree with this, I will provide a patch via gerrit.

Best regards





More information about the LibreOffice mailing list