Closed Bug 363924 Opened 18 years ago Closed 18 years ago

atk_bridge_init should not be called twice

Categories

(Core :: Disability Access APIs, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: ginnchen+exoracle, Assigned: ginnchen+exoracle)

References

Details

(Keywords: access)

Attachments

(1 file)

call atk_bridge_init twice will cause coredump (perhaps it's a bug of atk-bridge) I found sometimes when user is closing Gecko, Mozilla a11y module will Init() again after Shutdown() That will cause coredump. I think we should add a protection.
atk-bridge registered an exit function to clean up. Gnome application won't call shutdown function for either atk-bridge or gail. We can follow this rule to avoid crashes or asserts.
Summary: atk_bridge_init cannot be called twice → atk_bridge_init should not be called twice
Attached patch patchSplinter Review
1) Add sInitialized to avoid re-create and re-initialize AppRootAccessible after shutdown. e.g. atk_get_root will try to do that. 2) Do not call atk-bridge.shutdown(), gail.shutdown(), see code comments 3) After a11y shutdown, use gail's get_root to avoid an assert in spi_atk_tidy_windows() (bridge.c) It's tricky, atk-brdige tries to clean up windows on exit, if we return null for get_root, it will assert. So we give it a valid value created by gail. It's not a problem, because we clean up windows by ourself before shutdown. 4) Remove the out-dated debug code. (DumpMaiObjectInfo)
Attachment #250937 - Flags: review?(aaronleventhal)
Attachment #250937 - Flags: review?(aaronleventhal) → review+
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: