KSycocaFactory question

Thomas Braxton brax108 at cox.net
Wed Dec 7 07:02:27 GMT 2005


In kdecore/ksycocafactory.cpp:181 we have:

   qint32 *offsetList = new qint32[entryCount];
   for(int i = 0; i < entryCount; i++)
   {
      stream >> offsetList[i];
   }

   for(int i = 0; i < entryCount; i++)
   {
      KSycocaEntry *newEntry = createEntry(offsetList[i]);
      if (newEntry)
      {
         list.append( KSycocaEntry::Ptr( newEntry ) );
      }
   }
   delete [] offsetList;

couldn't this be changed to:

  qint32 offset;
  for(int i = 0; i < entryCount; i++)
  {
      stream >> offset;
      KSycocaEntry *newEntry = createEntry(offset);
      if (newEntry)
      {
         list.append( KSycocaEntry::Ptr( newEntry ) );
      }
  }

It doesn't seem to be usefull to allocate offsetList just to delete it right 
away. Why not just get rid of the wasteful allocation and deletion. There 
also doesn't seem to be a reason to iterate through two loops when one can 
clearly suffice. This code seems to also be copy/pasted to 
kio/kio/kservicefactory.cpp
Is it OK if I change these to the second form or am I missing something?




More information about the kde-core-devel mailing list