public:
virtual void register_state_machine (state_machine *) = 0;
virtual void register_known_function (const char *name,
- known_function *) = 0;
+ std::unique_ptr<known_function>) = 0;
virtual logger *get_logger () const = 0;
};
}
void register_known_function (const char *name,
- known_function *kf) final override
+ std::unique_ptr<known_function> kf) final override
{
LOG_SCOPE (m_logger);
- m_known_fn_mgr->add (name, kf);
+ m_known_fn_mgr->add (name, std::move (kf));
}
logger *get_logger () const final override
}
void
-known_function_manager::add (const char *name, known_function *kf)
+known_function_manager::add (const char *name,
+ std::unique_ptr<known_function> kf)
{
LOG_FUNC_1 (get_logger (), "registering %s", name);
tree id = get_identifier (name);
- m_map_id_to_kf.put (id, kf);
+ m_map_id_to_kf.put (id, kf.release ());
}
const known_function *
public:
known_function_manager (logger *logger);
~known_function_manager ();
- void add (const char *name, known_function *kf);
+ void add (const char *name, std::unique_ptr<known_function> kf);
const known_function *get_by_identifier (tree identifier);
const known_function *get_by_fndecl (tree fndecl);
LOG_SCOPE (iface->get_logger ());
if (0)
inform (input_location, "got here: kernel_analyzer_init_cb");
- iface->register_known_function ("copy_from_user",
- new known_function_copy_from_user ());
+ iface->register_known_function
+ ("copy_from_user",
+ make_unique<known_function_copy_from_user> ());
iface->register_known_function ("copy_to_user",
- new known_function_copy_to_user ());
+ make_unique<known_function_copy_to_user> ());
}
} // namespace ana
if (0)
inform (input_location, "got here: known_fn_analyzer_init_cb");
iface->register_known_function ("returns_42",
- new known_function_returns_42 ());
- iface->register_known_function ("attempt_to_copy",
- new known_function_attempt_to_copy ());
+ make_unique<known_function_returns_42> ());
+ iface->register_known_function
+ ("attempt_to_copy",
+ make_unique<known_function_attempt_to_copy> ());
}
} // namespace ana