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: