+
+
+ g_assert(module_attribute =
+ LTTV_ATTRIBUTE(lttv_iattribute_find_subdir(LTTV_IATTRIBUTE(g_attribute),
+ LTTV_COMPUTATION)));
+
+ g_assert(module_attribute =
+ LTTV_ATTRIBUTE(lttv_iattribute_find_subdir(
+ LTTV_IATTRIBUTE(module_attribute),
+ module_name)));
+
+ /* Call the module's hook adder */
+ type = lttv_iattribute_get_by_name(LTTV_IATTRIBUTE(module_attribute),
+ LTTV_HOOK_ADDER,
+ &value);
+ if(type == LTTV_POINTER) {
+ //lttv_hooks_call((LttvHooks*)*(value.v_pointer), (gpointer)tss);
+ if(hook_adder != NULL)
+ lttv_hooks_add_list(hook_adder, (LttvHooks*)*(value.v_pointer));
+ }
+}
+
+void lttvwindowtraces_remove_computation_hooks(LttvAttributeName module_name,
+ LttvTracesetContext *tsc,
+ LttvHooks *hook_remover)
+{
+ LttvAttribute *g_attribute = lttv_global_attributes();
+ LttvAttribute *module_attribute;
+ LttvAttributeType type;
+ LttvAttributeValue value;
+
+ g_assert(module_attribute =
+ LTTV_ATTRIBUTE(lttv_iattribute_find_subdir(LTTV_IATTRIBUTE(g_attribute),
+ LTTV_COMPUTATION)));
+
+ g_assert(module_attribute =
+ LTTV_ATTRIBUTE(lttv_iattribute_find_subdir(
+ LTTV_IATTRIBUTE(module_attribute),
+ module_name)));
+
+ /* Call the module's hook remover */
+ type = lttv_iattribute_get_by_name(LTTV_IATTRIBUTE(module_attribute),
+ LTTV_HOOK_REMOVER,
+ &value);
+ if(type == LTTV_POINTER) {
+ //lttv_hooks_call((LttvHooks*)*(value.v_pointer), (gpointer)tss);
+ if(hook_remover != NULL)
+ lttv_hooks_add_list(hook_remover, (LttvHooks*)*(value.v_pointer));
+ }
+}
+
+void lttvwindowtraces_call_before_chunk(LttvAttributeName module_name,
+ LttvTracesetContext *tsc)
+{
+ LttvAttribute *g_attribute = lttv_global_attributes();
+ LttvAttribute *module_attribute;
+ LttvAttributeType type;
+ LttvAttributeValue value;