diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index a6371b4..c55a503 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -184,21 +184,29 @@ static u8 lock = 0; static void renge_task_immed_del(){ u8 i,j; - // 指定タスクの削除と、リスト前詰め - for( i = j = 0; j < IMMED_RSV_TASKS_NUM-1; ) + // リスト前詰め + i = 0; + j = 1; + while( j < IMMED_RSV_TASKS_NUM ) { if( tasks_immed[ i ] == (void *)0 ) { - tasks_immed[ i ] = tasks_immed[ ++j ]; - tasks_immed[ j ] = (void *)0; + if( tasks_immed[ j ] != (void *)0 ) + { + tasks_immed[ i ] = tasks_immed[ j ]; + tasks_immed[ j ] = (void *)0; + i += 1; + } + } + else + { + i += 1; } - i += 1; j += 1; } } - /************************************** **************************************/ err renge_task_immed_run(){