struct widget_data *data;
int idx;
unsigned int resource_id;
- int status;
widget = widget_viewer_get_data(handle);
if (widget) {
case WIDGET_EVENT_WIDGET_EXTRA_BUFFER_CREATED:
widget_viewer_get_affected_extra_buffer(handle, 0, &idx, &resource_id);
DbgPrint("Extra buffer created for WIDGET: %d (%u)\n", idx, resource_id);
-
- status = widget_viewer_acquire_extra_resource_id(handle, 0, idx, acquire_widget_extra_resource_cb, data);
- if (status < 0) {
- ErrPrint("Failed to acquire resource: %u (0x%X)\n", resource_id, status);
+ if (resource_id == 0u) {
+ ErrPrint("Invalid resource id: %d\n", idx);
break;
}
+ if (!s_info.conf.field.skip_acquire) {
+ int status;
+
+ status = widget_viewer_acquire_extra_resource_id(handle, 0, idx, acquire_widget_extra_resource_cb, data);
+ if (status < 0) {
+ ErrPrint("Failed to acquire resource: %u (0x%X)\n", resource_id, status);
+ break;
+ }
+ }
+
if (!data->widget_extra) {
data->widget_extra = calloc(widget_viewer_get_option(WIDGET_OPTION_EXTRA_BUFFER_CNT), sizeof(*data->widget_extra));
if (!data->widget_extra) {
case WIDGET_EVENT_WIDGET_EXTRA_BUFFER_DESTROYED:
widget_viewer_get_affected_extra_buffer(handle, 0, &idx, &resource_id);
DbgPrint("Extra buffer destroyed for WIDGET: %d (%u)\n", idx, resource_id);
+ if (resource_id == 0u) {
+ ErrPrint("Invalid resource id: %d\n", idx);
+ break;
+ }
+
if (data->widget_extra[idx] != resource_id) {
DbgPrint("Resource Id mismatched\n");
if (data->widget_extra[idx] == 0u) {
case WIDGET_EVENT_GBAR_EXTRA_BUFFER_CREATED:
widget_viewer_get_affected_extra_buffer(handle, 1, &idx, &resource_id);
DbgPrint("Extra buffer destroyed for GBAR: %d (%u)\n", idx, resource_id);
+ if (resource_id == 0u) {
+ ErrPrint("Invalid resource id: %d\n", idx);
+ break;
+ }
+
if (!data->gbar_extra) {
data->gbar_extra = calloc(widget_viewer_get_option(WIDGET_OPTION_EXTRA_BUFFER_CNT), sizeof(*data->gbar_extra));
if (!data->gbar_extra) {
data->gbar_extra[idx] = resource_id;
data->gbar_extra_cnt++;
- if (widget_viewer_acquire_extra_resource_id(handle, 1, idx, acquire_gbar_extra_resource_cb, data) < 0) {
- ErrPrint("Failed to acquire resource: %u\n", resource_id);
+ if (!s_info.conf.field.skip_acquire) {
+ if (widget_viewer_acquire_extra_resource_id(handle, 1, idx, acquire_gbar_extra_resource_cb, data) < 0) {
+ ErrPrint("Failed to acquire resource: %u\n", resource_id);
+ }
}
break;
case WIDGET_EVENT_GBAR_EXTRA_BUFFER_DESTROYED:
widget_viewer_get_affected_extra_buffer(handle, 1, &idx, &resource_id);
DbgPrint("Extra buffer destroyed for GBAR: %d (%u)\n", idx, resource_id);
+ if (resource_id == 0u) {
+ ErrPrint("Invalid resource id: %d\n", idx);
+ break;
+ }
+
if (data->gbar_extra[idx] != resource_id) {
DbgPrint("Resource Id mismatched\n");
}
+
data->gbar_extra[idx] = 0u;
data->gbar_extra_cnt--;
if (!data->gbar_extra_cnt) {