utterance_cb_t deleter)
{
TWData *tw = tw_get_instance();
- if (tw->on_utterance_end_user_data && tw->on_utterance_end_deleter)
- tw->on_utterance_end_deleter(tw->on_utterance_end_user_data);
+ if (tw) {
+ if (tw->on_utterance_end_user_data && tw->on_utterance_end_deleter)
+ tw->on_utterance_end_deleter(tw->on_utterance_end_user_data);
- tw->on_utterance_end = uter_cb;
- tw->on_utterance_end_user_data = user_data;
- tw->on_utterance_end_deleter = deleter;
+ tw->on_utterance_end = uter_cb;
+ tw->on_utterance_end_user_data = user_data;
+ tw->on_utterance_end_deleter = deleter;
+ }
}
static Eina_Bool _do_atspi_action_by_name(AtspiAccessible *obj, const char *name)
static Eina_Bool tw_speak_delay_finished_cb(void *d)
{
TWData *tw = tw_get_instance();
+ if (!tw)
+ return EINA_FALSE;
tw->delay_timer = NULL;
if (tw->last_read_command == d)
Eina_Bool discardable, AtspiAccessible *obj, unsigned int delay)
{
TWData *tw = tw_get_instance();
+ if (!tw)
+ return EINA_FALSE;
if (text_to_speak == NULL) return NULL;