X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbctrace.C;h=b15cfea17fba633b6f087dfdabefc537318a2c39;hb=296147f865b3572c7e2ecdb47a5d827956221188;hp=9a0061fe331b7f9de68677163adb58b325d62848;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bctrace.C b/cinelerra-5.1/guicast/bctrace.C index 9a0061fe..b15cfea1 100644 --- a/cinelerra-5.1/guicast/bctrace.C +++ b/cinelerra-5.1/guicast/bctrace.C @@ -114,12 +114,12 @@ int BC_Trace::set_lock(const char *title, const char *loc, trace_info *info) last_lock_title = title; last_lock_location = loc; lock_item *it; - if( lock_table.size >= TOTAL_LOCKS ) { + if( (it=(lock_item*)lock_free.first) != 0 ) + lock_free.remove_pointer(it); + else if( lock_table.size >= TOTAL_LOCKS ) { it = (lock_item*)lock_table.first; lock_table.remove_pointer(it); } - else if( (it=(lock_item*)lock_free.first) != 0 ) - lock_free.remove_pointer(it); else it = new lock_item(); it->set(info, title, loc); @@ -185,7 +185,7 @@ void BC_Trace::unset_all_locks(trace_info *info) while( p ) { lock_item *lp = p; p = (lock_item*)p->next; if( lp->info != info ) continue; - lock_table.remove_pointer(p); lock_free.append(p); + lock_table.remove_pointer(lp); lock_free.append(lp); } lock_table.unlock(); } @@ -198,7 +198,7 @@ void BC_Trace::clear_locks_tid(pthread_t tid) while( p ) { lock_item *lp = p; p = (lock_item*)p->next; if( lp->tid != tid ) continue; - lock_table.remove_pointer(p); lock_free.append(p); + lock_table.remove_pointer(lp); lock_free.append(lp); } lock_table.unlock(); }