Closed Bug 339634 Opened 18 years ago Closed 18 years ago

GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function

Categories

(Core :: Disability Access APIs, defect)

x86
Linux
defect
Not set
blocker

Tracking

()

RESOLVED FIXED

People

(Reporter: ajschult784, Assigned: ginnchen+exoracle)

References

Details

Attachments

(1 file, 1 obsolete file)

With today's trunk build, I get "(process:14288): GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function" during component regristration of nsAccessibilityModule.  This is probably from bug 339314
seems it only happens with release build.
Assignee: aaronleventhal → ginn.chen
gtk_init is called after g_type_register_static

the problem is the AtkTypeForMai array, initialization of this array will cause gtype registering in libatk.
with release build, it happens earlier than gtk_init in nsAppRunner.cpp
Status: NEW → ASSIGNED
Blocks: 339314
Attached patch patch (obsolete) — Splinter Review
use switch-case instead of array to avoid earlier initialization.

this bug only happens to release build because release build uses --enable-static, so the array will be initialized before firefox starts.
Otherwise it will be initialized when libaccessibility.so loads, which is after gtk_init().
This bug causes gecko a11y doesn't work on Linux.
Severity: normal → blocker
Attachment #223742 - Flags: review?(ajschult)
Attached patch patchSplinter Review
fix some styles.

roc, Aaron is on vacation this week, this bug is a blocker of a11y on Linux
can you review this patch?

Thanks.
Attachment #223742 - Attachment is obsolete: true
Attachment #223750 - Flags: review?(roc)
Attachment #223742 - Flags: review?(ajschult)
*** Bug 339718 has been marked as a duplicate of this bug. ***
Comment on attachment 223750 [details] [diff] [review]
patch

+static const GType GetAtkTypeForMai(MaiInterfaceType type)

"const" is meaningless here, remove it.

+    if (typeRegCount++ > 4095) {
+        return G_TYPE_INVALID;
     }

I think you want >= here. With >, it might try to register 4096 types.
Attachment #223750 - Flags: superreview+
Attachment #223750 - Flags: review?(roc)
Attachment #223750 - Flags: review+
Checking in src/atk/nsAccessibleWrap.cpp;
/cvsroot/mozilla/accessible/src/atk/nsAccessibleWrap.cpp,v  <--  nsAccessibleWrap.cpp
new revision: 1.33; previous revision: 1.32
done
Status: ASSIGNED → 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: