+2008-01-25 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 5672.
+ * staptree.cxx (probe_point copy ctor): New function.
+ * staptree.h: Declare it.
+ * tapsets.cxx (dwarf_derived_probe ctor): Call it to shallow-copy
+ incoming base probe location before recomputing/overwriting it.
+
2008-01-25 David Smith <dsmith@redhat.com>
* configure.ac: Compressed the two perfmon options into one.
{
}
+// NB: shallow-copy of compoonents & condition!
+probe_point::probe_point (const probe_point& pp):
+ components(pp.components), tok(pp.tok), optional (pp.optional), sufficient (pp.sufficient),
+ condition (pp.condition)
+{
+}
+
+
probe_point::probe_point ():
tok (0), optional (false), sufficient (false), condition (0)
{
expression* condition;
void print (std::ostream& o) const;
probe_point ();
+ probe_point(const probe_point& pp);
probe_point(std::vector<component*> const & comps,const token * t);
std::string str();
};
Dwarf_Addr addr,
dwarf_query& q,
Dwarf_Die* scope_die /* may be null */)
- : derived_probe (q.base_probe, q.base_loc /* NB: base_loc.components will be overwritten */ ),
+ : derived_probe (q.base_probe, new probe_point(*q.base_loc) /* .components soon rewritten */ ),
module (module), section (section), addr (addr),
has_return (q.has_return),
has_maxactive (q.has_maxactive),