Подробности
[В начало]
Проблема в реализации № S0574
Краткое описание
atk_state_set_or_sets возвращает пустое множество, а не NULL
Подробное описание
Будучи вызванной на пустых множествах, atk_state_set_or_sets возвращает пустое множество.
Согласно же документации, она должна вернуть NULL.
В отличие от этой функции, atk_state_set_and_sets и atk_state_set_xor_sets в случае, когда результат пустое множество, возвращают NULL.
Раздел стандарта
ATK 1.9.0 Reference Manual, AtkStateSet
Способы устранения
Для устранения проблемы необходимо реализовать функцию atk_state_set_or_sets по аналогии с atk_state_set_and_sets и atk_state_set_xor_sets:
--- atk-1.19.6/atk/atkstateset.c
+++ atk-1.19.6/atk/atkstateset.c
@@ -308,8 +308,11 @@
state = real_set->state | real_compare_set->state;
- return_set = atk_state_set_new();
- ((AtkRealStateSet *) return_set)->state = state;
+ if (state)
+ {
+ return_set = atk_state_set_new();
+ ((AtkRealStateSet *) return_set)->state = state;
+ }
return return_set;
}
Компонент
gtk-atk 1.9.0 or later
Принято
Gnome Bugzilla 478595
Статус
Исправлено в ATK 1.25.2 for GNOME 2.25.2.
[В начало]