Подробности
[В начало]
Проблема в реализации № 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.
[В начало]