[Turn off line numbering]1: arg parents, name, manager; 2: var new; 3: 4: new = create(parents); 5: catch any { 6: new.initialize(); 7: 8: // niggle the names around... $has_name may have initted the wrong name 9: new.set_objname(name); 10: if (new.has_ancestor($has_name) && new.name() == "#" + new.objnum()) { 11: catch ~invname 12: new.set_name(substr(tostr(new), 2)); 13: } 14: 15: // let it manage itself 16: new.change_manager(manager); 17: } with { 18: // Failed to initialize the child; destroy it. 19: $sys.log_traceback(traceback(), "CREATE (" + parents + ", '" + name + ", " + manager + ")"); 20: (| new.destroy() |); 21: rethrow(error()); 22: } 23: return new;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit