@verb #53:"RefKiller" this none this rxdo #55 @program #53:"RefKiller" this none this caller_perms().wizard || raise(E_PERM) if ($code_utils:task_valid(this.refkiller_task) && this.refkiller_task != task_id()) raise(E_QUOTA, "Only one refkiller task running at a time, please!") endif this.refkiller_task = task_id() start_time = time() this.location:sub_announce_all(this.msg_refkiller_started) this.refkill_worklist = {$new_root, $root, @$root:descendents_suspended()} for x in (this.refkill_worklist) if (x == $recycler) continue "It's OK for the $recycler to have refs to the trash, as it will carefully clean them up as it creates the object, right?" endif this.last_refkilled_object = x for p in (x:all_nonclear_properties_suspended()) if (p in $code_utils.builtin_props) break endif if ($isa(x) && p in {"trash", "garbage"}) continue endif try tmp = this:remove_dead_refs(x.(p)) except (E_PROPNF) "Buh! It got chparent()ed during the suspend()..." "(or @rmproped, or (we hope not) @renamed...)" continue x endtry if (`tmp != x.(p) ! E_PROPNF') x.(p) = tmp endif $command_utils:suspend_if_needed(5, $repo_man) endfor endfor for x in [#0..max_object()] lv = length(verbs(x)) for vnum in [1..lv] v = lv - vnum + 1 vn = verbs(x)[v] if (valid(vo = verb_info(x, v)[1]) && (vo:isa($garbage) || vo:isa($toad))) vinfo = verb_info(x, v) vargs = verb_args(x, v) vcode = verb_code(x, v) spec = tostr(x, ":\"", vn, "\" ", $su:from_list(vargs, " ")) data = {tostr("@verb ", spec, " ", vinfo[2], " ", vinfo[1])} data = {@data, "@program " + spec} data = {@data, @vcode} data = {@data, "."} fn = tostr("refkilled_verb_", toint(x), "_", $file_utils:trans_to(vn)) x:filewrite(fn, data) delete_verb(x, v) elseif (!valid(vo)) $wiz_utils:guardian_alert(tostr(vo, ":", vn, " has an invalid owner. @chown it to something reasonable, or @rmverb it.")) endif $cmd_utils:suspend_if_needed(1) endfor $cmd_utils:suspend_if_needed(1) endfor this.last_complete_refkill_sweep = start_time this.location:sub_announce_all(this.msg_refkiller_finished) player:tell("Refkiller sweep complete. Time elapsed: ", $time_utils:english_time(time() - start_time)) "Last modified by manta (#7165) on Wed Dec 5 09:01:33 2001 MST." "This verb previously owned by manta (#7165), and chowned to $slacker upon dewizarding (Sat Aug 17 14:50:05 2002 MDT)." "Last modified by Dax (#789) on Tue May 3 14:09:30 2005 MDT." .