rendered paste bodyIndex: libhb/hb.c===================================================================--- libhb/hb.c (revision 706)+++ libhb/hb.c (working copy)@@ -23,6 +23,7 @@ from this one (see work.c) */ hb_list_t * jobs; int job_count;+ int job_count_permanent; volatile int work_die; int work_error; hb_thread_t * work_thread;@@ -655,6 +656,8 @@ /* Add the job to the list */ hb_list_add( h->jobs, job_copy );+ h->job_count = hb_count(h);+ h->job_count_permanent++; } /**@@ -665,7 +668,8 @@ void hb_rem( hb_handle_t * h, hb_job_t * job ) { hb_list_rem( h->jobs, job );-+ h->job_count = hb_count(h);+ h->job_count_permanent--; /* XXX free everything XXX */ } @@ -679,13 +683,13 @@ { /* XXX Hack */ h->job_count = hb_list_count( h->jobs );-+ hb_lock( h->state_lock ); h->state.state = HB_STATE_WORKING; #define p h->state.param.working p.progress = 0.0; p.job_cur = 1;- p.job_count = h->job_count;+ p.job_count = hb_list_count( h->jobs ); p.rate_cur = 0.0; p.rate_avg = 0.0; p.hours = -1;@@ -738,7 +742,7 @@ void hb_stop( hb_handle_t * h ) { h->work_die = 1;-+ h->job_count_permanent--; hb_resume( h ); } @@ -851,6 +855,8 @@ hb_lock( h->state_lock ); h->state.state = HB_STATE_WORKDONE; h->state.param.workdone.error = h->work_error;+ h->job_count = hb_count(h);+ hb_unlock( h->state_lock ); } @@ -903,8 +909,8 @@ { /* XXX Hack */ h->state.param.working.job_cur =- h->job_count - hb_list_count( h->jobs );- h->state.param.working.job_count = h->job_count;+ h->job_count_permanent - hb_list_count( h->jobs );+ h->state.param.working.job_count = hb_list_count( h->jobs ) +1; } hb_unlock( h->state_lock ); hb_unlock( h->pause_lock );