… | … | ||
---|---|---|---|
513 | else | 513 | else |
514 | { | 514 | { |
515 | LOG (llevDebug, "garbage collect arch %s", at->debug_desc ()); | 515 | LOG (llevDebug, "garbage collect arch %s", at->debug_desc ()); |
516 | assert (at->arch == at); // verify that refcnt == 1 is truely valid | 516 | assert (at->arch == at); // verify that refcnt == 1 is truely valid |
517 | allarch.erase (idx); | 517 | allarch.erase (idx); |
518 | |||
519 | // break chain | ||
520 | for (object *op = at->head_ (); op; ) | ||
521 | { | ||
522 | object *next = op->more; | ||
523 | op->head = 0; | ||
524 | op->more = 0; | ||
525 | op = next; | ||
526 | } | ||
527 | |||
528 | at->destroy (); | ||
518 | at->arch = 0; | 529 | at->arch = 0; |
519 | at->more = 0; | ||
520 | at->destroy (); | ||
521 | } | 530 | } |
522 | } | 531 | } |
523 | while (--cnt); | 532 | while (--cnt); |
524 | } | 533 | } |
525 | 534 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |