bt_notification_event_create(): create an empty CC priority map when NULL
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Mon, 17 Jul 2017 19:36:21 +0000 (15:36 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 10 Aug 2017 21:38:25 +0000 (17:38 -0400)
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
lib/graph/notification/event.c

index 407961bf858ae56fc67d3d349bc83af969b4d001..b56f556fbfde51e2b7046f735cf5ece68c5cda4c 100644 (file)
@@ -174,11 +174,18 @@ struct bt_notification *bt_notification_event_create(struct bt_ctf_event *event,
                goto error;
        }
 
-       if (!cc_prio_map) {
-               BT_LOGW_STR("Invalid parameter: clock class priority map is NULL.");
-               goto error;
+       if (cc_prio_map) {
+               /* Function's reference, released at the end */
+               bt_get(cc_prio_map);
+       } else {
+               cc_prio_map = bt_clock_class_priority_map_create();
+               if (!cc_prio_map) {
+                       BT_LOGE_STR("Cannot create empty clock class priority map.");
+                       goto error;
+               }
        }
 
+       assert(cc_prio_map);
        event_class = bt_ctf_event_borrow_event_class(event);
        assert(event_class);
        BT_LOGD("Creating event notification object: "
@@ -248,6 +255,7 @@ struct bt_notification *bt_notification_event_create(struct bt_ctf_event *event,
 
 error:
        bt_put(notification);
+       bt_put(cc_prio_map);
        return NULL;
 }
 
This page took 0.028473 seconds and 4 git commands to generate.