[Turn on line numbering]arg parents, name, manager; var new; new = create(parents); catch any { new.initialize(); // niggle the names around... $has_name may have initted the wrong name new.set_objname(name); if (new.has_ancestor($has_name) && new.name() == "#" + new.objnum()) { catch ~invname new.set_name(substr(tostr(new), 2)); } // let it manage itself new.change_manager(manager); } with { // Failed to initialize the child; destroy it. $sys.log_traceback(traceback(), "CREATE (" + parents + ", '" + name + ", " + manager + ")"); (| new.destroy() |); rethrow(error()); } return new;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit