… | |
… | |
258 | retval = 6; |
258 | retval = 6; |
259 | /* base name matched - not bad */ |
259 | /* base name matched - not bad */ |
260 | else if (strcasecmp (cp, op->name) == 0 && !count) |
260 | else if (strcasecmp (cp, op->name) == 0 && !count) |
261 | retval = 4; |
261 | retval = 4; |
262 | /* Check for partial custom name, but give a real low priority */ |
262 | /* Check for partial custom name, but give a real low priority */ |
263 | else if (op->custom_name && strstr (op->custom_name, cp)) |
263 | else if (op->custom_name && op->custom_name.contains (cp)) |
264 | retval = 3; |
264 | retval = 3; |
265 | |
265 | |
266 | if (retval) |
266 | if (retval) |
267 | { |
267 | { |
268 | if (pl->type == PLAYER) |
268 | if (pl->type == PLAYER) |
… | |
… | |
440 | return new_head; |
440 | return new_head; |
441 | } |
441 | } |
442 | |
442 | |
443 | fail: |
443 | fail: |
444 | for (auto (p, parts.begin ()); p != parts.end (); ++p) |
444 | for (auto (p, parts.begin ()); p != parts.end (); ++p) |
445 | (*p)->destroy (true); |
445 | (*p)->destroy (); |
446 | |
446 | |
447 | return 0; |
447 | return 0; |
448 | } |
448 | } |
449 | |
449 | |
450 | void |
450 | void |
… | |
… | |
510 | |
510 | |
511 | if (at->refcnt_cnt () > 1) // all arches have ONE refcount from their object |
511 | if (at->refcnt_cnt () > 1) // all arches have ONE refcount from their object |
512 | ++idx; |
512 | ++idx; |
513 | else |
513 | else |
514 | { |
514 | { |
515 | LOG (llevDebug, "garbage collect arch %s", at->debug_desc ()); |
515 | LOG (llevDebug, "garbage collect arch %s", &at->archname); |
516 | assert (at->arch == at); // verify that refcnt == 1 is truly valid |
516 | assert (at->arch == at); // verify that refcnt == 1 is truly valid |
517 | allarch.erase (idx); |
517 | allarch.erase (idx); |
518 | |
518 | |
519 | // break chain |
519 | // break chain |
520 | for (object *op = at->head_ (); op; ) |
520 | for (object *op = at->head_ (); op; ) |
… | |
… | |
523 | op->head = 0; |
523 | op->head = 0; |
524 | op->more = 0; |
524 | op->more = 0; |
525 | op = next; |
525 | op = next; |
526 | } |
526 | } |
527 | |
527 | |
528 | op->destroy_inv (false); |
|
|
529 | at->destroy (true); |
528 | at->destroy (); |
530 | at->arch = 0; |
529 | at->arch = 0; |
531 | } |
530 | } |
532 | } |
531 | } |
533 | while (--cnt); |
532 | while (--cnt); |
534 | } |
533 | } |