X-Git-Url: http://git.silcnet.org/gitweb/?p=runtime.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcschedule.c;h=bb9c19f26178b1d3f76f01eccb1f40a90828ad06;hp=5550181a7da686d070e2103a6a1d8ac33140e9dd;hb=a788ad407a51e84cfd41fedc6c053e62283ea2d7;hpb=72c2de619079457f7a68100eb13385275a424a23 diff --git a/lib/silcutil/silcschedule.c b/lib/silcutil/silcschedule.c index 5550181a..bb9c19f2 100644 --- a/lib/silcutil/silcschedule.c +++ b/lib/silcutil/silcschedule.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 1998 - 2007 Pekka Riikonen + Copyright (C) 1998 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,9 +16,8 @@ GNU General Public License for more details. */ -/* $Id$ */ -#include "silc.h" +#include "silcruntime.h" /************************** Types and definitions ***************************/ @@ -227,13 +226,15 @@ static void silc_schedule_task_remove(SilcSchedule schedule, SilcTask task) /* Delete even tasks */ parent = silc_schedule_get_parent(schedule); - silc_hash_table_list(parent->events, &htl); - while (silc_hash_table_get(&htl, NULL, (void *)&etask)) { - silc_hash_table_del_by_context(parent->events, etask->event, etask); - silc_free(etask->event); - silc_free(etask); + if (parent->events) { + silc_hash_table_list(parent->events, &htl); + while (silc_hash_table_get(&htl, NULL, (void *)&etask)) { + silc_hash_table_del_by_context(parent->events, etask->event, etask); + silc_free(etask->event); + silc_free(etask); + } + silc_hash_table_list_reset(&htl); } - silc_hash_table_list_reset(&htl); return; } @@ -880,10 +881,12 @@ SilcBool silc_schedule_task_del(SilcSchedule schedule, SilcTask task) /* Delete even tasks */ parent = silc_schedule_get_parent(schedule); - silc_hash_table_list(parent->events, &htl); - while (silc_hash_table_get(&htl, NULL, (void *)&task)) - task->valid = FALSE; - silc_hash_table_list_reset(&htl); + if (parent->events) { + silc_hash_table_list(parent->events, &htl); + while (silc_hash_table_get(&htl, NULL, (void *)&task)) + task->valid = FALSE; + silc_hash_table_list_reset(&htl); + } SILC_SCHEDULE_UNLOCK(schedule); return TRUE;