TAO_Stub * TAO_Stub::set_policy_overrides (const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add) { // Notice the use of an explicit constructor.... auto_ptr<TAO_Policy_Set> policy_manager ( new TAO_Policy_Set (TAO_POLICY_OBJECT_SCOPE)); if (set_add == CORBA::SET_OVERRIDE) { policy_manager->set_policy_overrides (policies, set_add); } else if (this->policies_ == 0) { policy_manager->set_policy_overrides (policies, CORBA::SET_OVERRIDE); } else { policy_manager->copy_from (this->policies_); policy_manager->set_policy_overrides (policies, set_add); } TAO_Stub* stub = this->orb_core_->create_stub (this->type_id.in (), this->base_profiles_); stub->policies_ = policy_manager.release (); // Copy the servant ORB if it is present. stub->servant_orb (this->servant_orb_var ().in ()); return stub; }