static gchar* getTextCB(AtkText *aText, gint aStartOffset, gint aEndOffset) { AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); if (!accWrap) return nullptr; HyperTextAccessible* text = accWrap->AsHyperText(); if (!text || !text->IsTextRole()) return nullptr; nsAutoString autoStr; nsresult rv = text->GetText(aStartOffset, aEndOffset, autoStr); NS_ENSURE_SUCCESS(rv, nullptr); ConvertTexttoAsterisks(accWrap, autoStr); NS_ConvertUTF16toUTF8 cautoStr(autoStr); //copy and return, libspi will free it. return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; }