Details
[Home]
Issue of the Implementation # S0574
Brief
atk_state_set_or_sets returns an empty set rather than NULL
Detailed Description
atk_state_set_or_sets returns an empty set when called for empty sets.
The standard requires that atk_state_set_or_sets returns NULL if the union of the sets is empty.
Unlike this function, atk_state_set_and_sets and atk_state_set_xor_sets return NULL when result is empty set.
Problem location(s) in the standard
ATK 1.9.0 Reference Manual, AtkStateSet
Possible solutions
It is required to implement atk_state_set_or_sets by analogy with atk_state_set_and_sets and 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; }
Component
gtk-atk 1.9.0 or later
Accepted
Gnome Bugzilla 478595
Status
Fixed in ATK 1.25.2 for GNOME 2.25.2.
[Home]
»