$ time ./converter/babeltrace --plugin-path=plugins ~/lttng-traces/allo-
20160829-153459/kernel/ > /dev/null
real 0m6.490s
user 0m6.413s
sys 0m0.067s
Caching of event class id and name
$ time ./converter/babeltrace --plugin-path=plugins ~/lttng-traces/allo-
20160829-153459/kernel/ > /dev/null
real 0m1.027s
user 0m1.013s
sys 0m0.003s
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
bt_object_init(event_class, bt_ctf_event_class_destroy);
event_class->fields = bt_ctf_field_type_structure_create();
if (!event_class->fields) {
bt_object_init(event_class, bt_ctf_event_class_destroy);
event_class->fields = bt_ctf_field_type_structure_create();
if (!event_class->fields) {
+ if (event_class->name) {
+ name = event_class->name;
+ goto end;
+ }
+
obj = bt_ctf_attributes_get_field_value(event_class->attributes,
BT_CTF_EVENT_CLASS_ATTR_NAME_INDEX);
if (!obj) {
obj = bt_ctf_attributes_get_field_value(event_class->attributes,
BT_CTF_EVENT_CLASS_ATTR_NAME_INDEX);
if (!obj) {
+ if (event_class->id >= 0) {
+ ret = event_class->id;
+ goto end;
+ }
+
obj = bt_ctf_attributes_get_field_value(event_class->attributes,
BT_CTF_EVENT_CLASS_ATTR_ID_INDEX);
if (!obj) {
obj = bt_ctf_attributes_get_field_value(event_class->attributes,
BT_CTF_EVENT_CLASS_ATTR_ID_INDEX);
if (!obj) {
{
assert(event_class);
event_class->frozen = 1;
{
assert(event_class);
event_class->frozen = 1;
+ event_class->name = bt_ctf_event_class_get_name(event_class);
+ event_class->id = bt_ctf_event_class_get_id(event_class);
bt_ctf_field_type_freeze(event_class->context);
bt_ctf_field_type_freeze(event_class->fields);
bt_ctf_attributes_freeze(event_class->attributes);
bt_ctf_field_type_freeze(event_class->context);
bt_ctf_field_type_freeze(event_class->fields);
bt_ctf_attributes_freeze(event_class->attributes);
* no events are created out of this event class.
*/
int valid;
* no events are created out of this event class.
*/
int valid;
+
+ /* Cached values */
+ const char *name;
+ int64_t id;