set_member_is_static dominates some performance profile because that
function compares data members before their types are canonicalizing.
This means the comparison is done structurally. So it's potentially
super long.
This patch fixes the issue by comparing data members by just looking at
their names, and that should be enough.
* src/abg-ir.cc (set_member_is_static): When comparing data
members, consider only their names.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
i != cl->priv_->non_static_data_members_.end();
++i)
{
- if (**i == *v)
+ if ((*i)->get_name() == v->get_name())
{
cl->priv_->non_static_data_members_.erase(i);
break;
i != cl->priv_->non_static_data_members_.end();
++i)
{
- if (**i == *v)
+ if ((*i)->get_name() == v->get_name())
{
is_already_in_non_static_data_members = true;
break;
i != cl->priv_->data_members_.end();
++i)
{
- if (**i == *v)
+ if ((*i)->get_name() == v->get_name())
{
var = *i;
break;