- BT_LOGD("Calling user's query method: "
- "query-exec-addr=%p, comp-class-addr=%p, "
- "comp-class-name=\"%s\", comp-class-type=%s, "
- "object=\"%s\", params-addr=%p",
- query_exec, component_class,
- bt_component_class_get_name(component_class),
- bt_component_class_type_string(component_class->type),
- object, params);
- ret = component_class->methods.query(component_class, query_exec,
- object, params);
- BT_LOGD("User method returned: status=%s, result-addr=%p",
- bt_query_status_string(ret.status), ret.result);
+ BT_LIB_LOGD("Calling user's query method: "
+ "query-exec-addr=%p, %![cc-]+C, object=\"%s\", %![params-]+v",
+ query_exec, comp_cls, object, params);
+ *user_result = NULL;
+ status = method((void *) comp_cls, query_exec, object, params,
+ user_result);
+ BT_LIB_LOGD("User method returned: status=%s, %![res-]+v",
+ bt_query_status_string(status), *user_result);
+ BT_ASSERT_PRE(status != BT_QUERY_STATUS_OK || *user_result,
+ "User method returned `BT_QUERY_STATUS_OK` without a result.");
+ exec_status = (int) status;