summaryrefslogtreecommitdiffabout
path: root/microkde
authorzautrix <zautrix>2004-07-05 13:18:57 (UTC)
committer zautrix <zautrix>2004-07-05 13:18:57 (UTC)
commitca6ce5868aef5e925ff2e61d363f71e43d2b7d7b (patch) (unidiff)
tree5cb350d3a9bd3451fcf5184a2dd8d36ddd330f0e /microkde
parent93f9b1e0a8935210b03a094ce18949b7197041aa (diff)
downloadkdepimpi-ca6ce5868aef5e925ff2e61d363f71e43d2b7d7b.zip
kdepimpi-ca6ce5868aef5e925ff2e61d363f71e43d2b7d7b.tar.gz
kdepimpi-ca6ce5868aef5e925ff2e61d363f71e43d2b7d7b.tar.bz2
Fix of endless loop when removin resources
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kconfig.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/microkde/kconfig.cpp b/microkde/kconfig.cpp
index f8e362e..71db891 100644
--- a/microkde/kconfig.cpp
+++ b/microkde/kconfig.cpp
@@ -326,94 +326,97 @@ void KConfig::sync()
326 * If the group is not empty and bDeep is false, nothing gets 326 * If the group is not empty and bDeep is false, nothing gets
327 * deleted and false is returned. 327 * deleted and false is returned.
328 * If this group is the current group and it is deleted, the 328 * If this group is the current group and it is deleted, the
329 * current group is undefined and should be set with setGroup() 329 * current group is undefined and should be set with setGroup()
330 * before the next operation on the configuration object. 330 * before the next operation on the configuration object.
331 * 331 *
332 * @param group The name of the group 332 * @param group The name of the group
333 * returns true if we deleted at least one entry. 333 * returns true if we deleted at least one entry.
334 */ 334 */
335bool KConfig::deleteGroup( const QString& group) 335bool KConfig::deleteGroup( const QString& group)
336{ 336{
337 bool dirty = false; 337 bool dirty = false;
338 int pos; 338 int pos;
339 339
340 QMap<QString,bool>::Iterator itBool = mBoolMap.begin(); 340 QMap<QString,bool>::Iterator itBool = mBoolMap.begin();
341 QMap<QString,bool>::Iterator delBool; 341 QMap<QString,bool>::Iterator delBool;
342 342
343 while ( itBool != mBoolMap.end() ) { 343 while ( itBool != mBoolMap.end() ) {
344 pos = itBool.key().find( group ); 344 pos = itBool.key().find( group );
345 if (pos == 0) { 345 if (pos == 0) {
346 delBool = itBool; 346 delBool = itBool;
347 ++itBool; 347 ++itBool;
348 mBoolMap.remove(delBool); 348 mBoolMap.remove(delBool);
349 dirty = true; 349 dirty = true;
350 } 350 } else
351 ++itBool;
351 352
352 } 353 }
353 /* 354 /*
354 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) 355 for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool )
355 { 356 {
356 pos = itBool.key().find( group ); 357 pos = itBool.key().find( group );
357 if (pos == 0) { 358 if (pos == 0) {
358 mBoolMap.remove(itBool); 359 mBoolMap.remove(itBool);
359 dirty = true; 360 dirty = true;
360 } 361 }
361 } 362 }
362 */ 363 */
363 QMap<QString,QString>::Iterator itString = mStringMap.begin(); 364 QMap<QString,QString>::Iterator itString = mStringMap.begin();
364 QMap<QString,QString>::Iterator delString ; 365 QMap<QString,QString>::Iterator delString ;
365 while( itString != mStringMap.end() ) { 366 while( itString != mStringMap.end() ) {
366 pos = itString.key().find( group ); 367 pos = itString.key().find( group );
367 if (pos == 0) { 368 if (pos == 0) {
368 delString = itString; 369 delString = itString;
369 ++itString; 370 ++itString;
370 mStringMap.remove(delString); 371 mStringMap.remove(delString);
371 //qDebug("delte++++++++++++++++++ "); 372 //qDebug("delte++++++++++++++++++ ");
372 dirty = true; 373 dirty = true;
373 } 374 } else
375 ++itString;
374 376
375 } 377 }
376 /* this leads to a memory access violation 378 /* this leads to a memory access violation
377 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) 379 for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString )
378 { 380 {
379 pos = itString.key().find( group ); 381 pos = itString.key().find( group );
380 if (pos == 0) { 382 if (pos == 0) {
381 mStringMap.remove(itString); 383 mStringMap.remove(itString);
382 dirty = true; 384 dirty = true;
383 } 385 }
384 } 386 }
385 */ 387 */
386 QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin(); 388 QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin();
387 QMap<QString,QDateTime>::Iterator delDateTime; 389 QMap<QString,QDateTime>::Iterator delDateTime;
388 while ( itDateTime != mDateTimeMap.end() ) { 390 while ( itDateTime != mDateTimeMap.end() ) {
389 pos = itDateTime.key().find( group ); 391 pos = itDateTime.key().find( group );
390 if (pos == 0) { 392 if (pos == 0) {
391 delDateTime = itDateTime; 393 delDateTime = itDateTime;
392 ++itDateTime; 394 ++itDateTime;
393 mDateTimeMap.remove(delDateTime); 395 mDateTimeMap.remove(delDateTime);
394 dirty = true; 396 dirty = true;
395 } 397 } else
398 ++itDateTime;
396 399
397 } 400 }
398 /* 401 /*
399 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) 402 for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime )
400 { 403 {
401 pos = itDateTime.key().find( group ); 404 pos = itDateTime.key().find( group );
402 if (pos == 0) { 405 if (pos == 0) {
403 mDateTimeMap.remove(itDateTime); 406 mDateTimeMap.remove(itDateTime);
404 dirty = true; 407 dirty = true;
405 } 408 }
406 } 409 }
407 */ 410 */
408 411
409 if (dirty) 412 if (dirty)
410 mDirty = true; 413 mDirty = true;
411 414
412 return dirty; 415 return dirty;
413 416
414} 417}
415 418
416//US I took the following hasGroup method from a newer version from KDE. 419//US I took the following hasGroup method from a newer version from KDE.
417 /** 420 /**
418 * Returns true if the specified group is known about. 421 * Returns true if the specified group is known about.
419 * 422 *