NS_IMETHODIMP nsAccessibleWrap::GetNativeInterface(void **aOutAccessible) { *aOutAccessible = nsnull; if (!mAtkObject) { if (!mWeakShell || !nsAccUtils::IsEmbeddedObject(this)) { // We don't create ATK objects for node which has been shutdown, or // nsIAccessible plain text leaves return NS_ERROR_FAILURE; } GType type = GetMaiAtkType(CreateMaiInterfaces()); NS_ENSURE_TRUE(type, NS_ERROR_FAILURE); mAtkObject = reinterpret_cast<AtkObject *> (g_object_new(type, NULL)); NS_ENSURE_TRUE(mAtkObject, NS_ERROR_OUT_OF_MEMORY); atk_object_initialize(mAtkObject, this); mAtkObject->role = ATK_ROLE_INVALID; mAtkObject->layer = ATK_LAYER_INVALID; } *aOutAccessible = mAtkObject; return NS_OK; }
NS_IMETHODIMP nsAccessibleWrap::GetNativeInterface(void **aOutAccessible) { *aOutAccessible = nsnull; if (!mMaiAtkObject) { CreateMaiInterfaces(); GType type = GetMaiAtkType(mInterfaceCount, mInterfaces); NS_ENSURE_TRUE(type, NS_ERROR_FAILURE); mMaiAtkObject = NS_REINTERPRET_CAST(AtkObject *, g_object_new(type, NULL)); NS_ENSURE_TRUE(mMaiAtkObject, NS_ERROR_OUT_OF_MEMORY); atk_object_initialize(mMaiAtkObject, this); mMaiAtkObject->role = ATK_ROLE_INVALID; mMaiAtkObject->layer = ATK_LAYER_INVALID; }