summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrolley <brolley>2008-01-24 16:43:13 +0000
committerbrolley <brolley>2008-01-24 16:43:13 +0000
commitedc22ba9b105fd944f39cf536346ff68c2c8d0aa (patch)
treeb2c77ae5be2e2bad26be325cc6a7b33ce3ebcb14
parent37d728f025d436dac4081ff47b2d3125ac27ea82 (diff)
downloadsystemtap-steved-edc22ba9b105fd944f39cf536346ff68c2c8d0aa.tar.gz
systemtap-steved-edc22ba9b105fd944f39cf536346ff68c2c8d0aa.tar.xz
systemtap-steved-edc22ba9b105fd944f39cf536346ff68c2c8d0aa.zip
2008-01-24 Dave Brolley <brolley@redhat.com>
PR 5017. * staptree.cxx (<cstring>): #include it. (required <indexable *>): Remove 'static' from instantiation and move instantiation to here from... * staptree.h: ...here.
-rw-r--r--ChangeLog11
-rw-r--r--staptree.cxx28
-rw-r--r--staptree.h27
3 files changed, 40 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d0281f0..956255ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-01-24 Dave Brolley <brolley@redhat.com>
+
+ PR 5017.
+ * staptree.cxx (<cstring>): #include it.
+ (required <indexable *>): Remove 'static' from instantiation and
+ move instantiation to here from...
+ * staptree.h: ...here.
+
2008-01-23 David Smith <dsmith@redhat.com>
PR 5661.
@@ -10,6 +18,7 @@
2008-01-23 Dave Brolley <brolley@redhat.com>
+ PR 5613.
* translate.cxx (var::fini): New method.
(c_unparser::emit_module_init): Call var::fini when deregistering
variables without indices.
@@ -17,7 +26,7 @@
2008-01-23 Frank Ch. Eigler <fche@elastic.org>
- PR 2151
+ PR 2151.
* tapsets.cxx (dwflpp::setup): Parametrize debuginfo_path.
* stap.1.in: Document this.
diff --git a/staptree.cxx b/staptree.cxx
index ed2bc00e..173314ee 100644
--- a/staptree.cxx
+++ b/staptree.cxx
@@ -18,6 +18,7 @@
#include <cstring>
#include <vector>
#include <algorithm>
+#include <cstring>
using namespace std;
@@ -2370,3 +2371,30 @@ deep_copy_visitor::deep_copy (expression* s)
require <expression*> (&v, &n, s);
return n;
}
+
+template <> void
+require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src)
+{
+ if (src != NULL)
+ {
+ symbol *array_src=NULL, *array_dst=NULL;
+ hist_op *hist_src=NULL, *hist_dst=NULL;
+
+ classify_indexable(src, array_src, hist_src);
+
+ *dst = NULL;
+
+ if (array_src)
+ {
+ require <symbol*> (v, &array_dst, array_src);
+ *dst = array_dst;
+ }
+ else
+ {
+ require <hist_op*> (v, &hist_dst, hist_src);
+ *dst = hist_dst;
+ }
+ assert (*dst);
+ }
+}
+
diff --git a/staptree.h b/staptree.h
index 4584d32d..5b4b56cd 100644
--- a/staptree.h
+++ b/staptree.h
@@ -846,31 +846,8 @@ require (deep_copy_visitor* v, T* dst, T src)
}
}
-template <> static void
-require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src)
-{
- if (src != NULL)
- {
- symbol *array_src=NULL, *array_dst=NULL;
- hist_op *hist_src=NULL, *hist_dst=NULL;
-
- classify_indexable(src, array_src, hist_src);
-
- *dst = NULL;
-
- if (array_src)
- {
- require <symbol*> (v, &array_dst, array_src);
- *dst = array_dst;
- }
- else
- {
- require <hist_op*> (v, &hist_dst, hist_src);
- *dst = hist_dst;
- }
- assert (*dst);
- }
-}
+template <> void
+require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src);
template <typename T> void
provide (deep_copy_visitor* v, T src)