event->context =
event->context_decl->definition_new(event->context_decl,
parent_def_scope, 0, 0);
- set_dynamic_definition_scope(event->context->scope,
+ set_dynamic_definition_scope(&event->context->p,
+ event->context->scope,
g_quark_from_string("event.context"));
parent_def_scope = event->context->scope;
declaration_unref(event->context_decl);
event->fields =
event->fields_decl->definition_new(event->fields_decl,
parent_def_scope, 0, 0);
- set_dynamic_definition_scope(event->fields->scope,
+ set_dynamic_definition_scope(&event->fields->p,
+ event->fields->scope,
g_quark_from_string("event.fields"));
parent_def_scope = event->fields->scope;
declaration_unref(event->fields_decl);
stream->packet_context =
stream->packet_context_decl->definition_new(stream->packet_context_decl,
parent_def_scope, 0, 0);
- set_dynamic_definition_scope(stream->packet_context->scope,
+ set_dynamic_definition_scope(&stream->packet_context->p,
+ stream->packet_context->scope,
g_quark_from_string("stream.packet.context"));
parent_def_scope = stream->packet_context->scope;
declaration_unref(stream->packet_context_decl);
stream->event_header =
stream->event_header_decl->definition_new(stream->event_header_decl,
parent_def_scope, 0, 0);
- set_dynamic_definition_scope(stream->event_header->scope,
+ set_dynamic_definition_scope(&stream->event_header->p,
+ stream->event_header->scope,
g_quark_from_string("stream.event.header"));
parent_def_scope = stream->event_header->scope;
declaration_unref(stream->event_header_decl);
stream->event_context =
stream->event_context_decl->definition_new(stream->event_context_decl,
parent_def_scope, 0, 0);
- set_dynamic_definition_scope(stream->event_context_scope,
+ set_dynamic_definition_scope(&stream->event_context->p,
+ stream->event_context->scope,
g_quark_from_string("stream.event.context"));
parent_def_scope = stream->event_context->scope;
declaration_unref(stream->event_context_decl);
struct definition_scope *
new_definition_scope(struct definition_scope *parent_scope,
GQuark field_name);
-void set_dynamic_definition_scope(struct definition_scope *scope,
+void set_dynamic_definition_scope(struct definition *definition,
+ struct definition_scope *scope,
GQuark root_name);
void free_definition_scope(struct definition_scope *scope);
*/
#include <babeltrace/format.h>
+#include <limits.h>
#include <glib.h>
#include <errno.h>
return scope;
}
-void set_dynamic_definition_scope(struct definition_scope *scope,
+void set_dynamic_definition_scope(struct definition *definition,
+ struct definition_scope *scope,
GQuark root_name)
{
g_array_set_size(scope->scope_path, 1);
g_array_index(scope->scope_path, GQuark, 0) = root_name;
+ /*
+ * Use INT_MAX order to ensure that all fields of the parent
+ * scope are seen as being prior to this scope.
+ */
+ definition->index = INT_MAX;
}
void free_definition_scope(struct definition_scope *scope)