Add:Core:Check for existence of event system before using it
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Wed, 26 May 2010 00:46:10 +0000 (00:46 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Wed, 26 May 2010 00:46:10 +0000 (00:46 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3297 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/event.c
navit/navit/event.h
navit/navit/graphics.c
navit/navit/messages.c

index daa5de8..611579f 100644 (file)
@@ -93,6 +93,12 @@ event_call_callback(struct callback_list *cb)
        event_methods.call_callback(cb);
 }
 
+char *
+event_system(void)
+{
+       return e_system;
+}
+
 int
 event_request_system(const char *system, const char *requestor)
 {
index 3b16646..0b5aeb5 100644 (file)
@@ -64,6 +64,7 @@ void event_remove_timeout(struct event_timeout *ev);
 struct event_idle *event_add_idle(int priority, struct callback *cb);
 void event_remove_idle(struct event_idle *ev);
 void event_call_callback(struct callback_list *cb);
+char *event_system(void);
 int event_request_system(const char *system, const char *requestor);
 /* end of prototypes */
 #ifdef __cplusplus
index b2bf280..6d57d14 100644 (file)
@@ -1966,7 +1966,8 @@ do_draw(struct displaylist *displaylist, int cancel, int flags)
                displaylist->m=NULL;
        }
        profile(1,"process_selection\n");
-       event_remove_idle(displaylist->idle_ev);
+       if (displaylist->idle_ev)
+               event_remove_idle(displaylist->idle_ev);
        displaylist->idle_ev=NULL;
        callback_destroy(displaylist->idle_cb);
        displaylist->idle_cb=NULL;
index 1410709..b3d9ddc 100644 (file)
@@ -144,6 +144,8 @@ struct messagelist
 void
 messagelist_init(struct messagelist *this_)
 {
+       if (!event_system())
+               return;
        this_->msg_cleanup_cb = callback_new_1(callback_cast(message_cleanup), this_);
        this_->msg_cleanup_to = event_add_timeout(1000, 1, this_->msg_cleanup_cb);
 }