projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
some fixes for global traces
[lttv.git]
/
ltt
/
branches
/
poly
/
lttv
/
lttv
/
traceset.c
diff --git
a/ltt/branches/poly/lttv/lttv/traceset.c
b/ltt/branches/poly/lttv/lttv/traceset.c
index c487b64e632967bb96548119fcf79fe60c692b57..fd67c68859b834ca4daeee12fb64317456579689 100644
(file)
--- a/
ltt/branches/poly/lttv/lttv/traceset.c
+++ b/
ltt/branches/poly/lttv/lttv/traceset.c
@@
-83,11
+83,8
@@
LttvTraceset *lttv_traceset_copy(LttvTraceset *s_orig)
trace = g_ptr_array_index(s_orig->traces, i);
trace->ref_count++;
trace = g_ptr_array_index(s_orig->traces, i);
trace->ref_count++;
- /*CHECK this used ltt_trace_copy while it may not be needed. Need to
- define how traces and tracesets are shared */
- g_ptr_array_add(
- s->traces,
- g_ptr_array_index(s_orig->traces, i));
+ g_ptr_array_add(s->traces,
+ trace);
}
s->a = LTTV_ATTRIBUTE(lttv_iattribute_deep_copy(LTTV_IATTRIBUTE(s_orig->a)));
return s;
}
s->a = LTTV_ATTRIBUTE(lttv_iattribute_deep_copy(LTTV_IATTRIBUTE(s_orig->a)));
return s;
@@
-122,6
+119,14
@@
gint lttv_traceset_save(LttvTraceset *s)
void lttv_traceset_destroy(LttvTraceset *s)
{
void lttv_traceset_destroy(LttvTraceset *s)
{
+ guint i;
+
+ for(i=0;i<s->traces->len;i++) {
+ LttvTrace *trace = g_ptr_array_index(s->traces, i);
+ lttv_trace_unref(trace);
+ if(lttv_trace_get_ref_number(trace) == 0)
+ lttv_trace_destroy(trace);
+ }
g_ptr_array_free(s->traces, TRUE);
g_object_unref(s->a);
g_free(s);
g_ptr_array_free(s->traces, TRUE);
g_object_unref(s->a);
g_free(s);
This page took
0.023269 seconds
and
4
git commands to generate.