diff options
author | Dave Brolley <brolley@redhat.com> | 2009-06-11 12:00:11 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-06-11 12:00:11 -0400 |
commit | d4d8b581532460c89895a751df5ef64e5e5088e6 (patch) | |
tree | 04b77a48d305f9507429cd3fd248b245331a5475 /elaborate.cxx | |
parent | b12c8986778619db5bec0a5e52f2d49247e6b5ba (diff) | |
parent | 6766808e165cd3ba3c8d514529e292761e7cb650 (diff) | |
download | systemtap-steved-d4d8b581532460c89895a751df5ef64e5e5088e6.tar.gz systemtap-steved-d4d8b581532460c89895a751df5ef64e5e5088e6.tar.xz systemtap-steved-d4d8b581532460c89895a751df5ef64e5e5088e6.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'elaborate.cxx')
-rw-r--r-- | elaborate.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/elaborate.cxx b/elaborate.cxx index 5cfb2bb0..f0c6c5a9 100644 --- a/elaborate.cxx +++ b/elaborate.cxx @@ -509,11 +509,15 @@ alias_expansion_builder alias_derived_probe * n = new alias_derived_probe (use, location /* soon overwritten */, this->alias); n->body = new block(); - // The new probe gets the location list of the alias (with incoming condition joined) - n->locations = alias->locations; - for (unsigned i=0; i<n->locations.size(); i++) - n->locations[i]->condition = add_condition (n->locations[i]->condition, - location->condition); + // The new probe gets a deep copy of the location list of + // the alias (with incoming condition joined) + n->locations.clear(); + for (unsigned i=0; i<alias->locations.size(); i++) + { + probe_point *pp = new probe_point(*alias->locations[i]); + pp->condition = add_condition (pp->condition, location->condition); + n->locations.push_back(pp); + } // the token location of the alias, n->tok = location->tok; |