/[emacs]/emacs/gc/finalize.c
ViewVC logotype

Diff of /emacs/gc/finalize.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2.2.1 by fx, Thu Jun 5 18:23:04 2003 UTC revision 1.2.2.1.2.1 by fx, Mon Jun 16 15:19:52 2003 UTC
# Line 764  int GC_invoke_finalizers() Line 764  int GC_invoke_finalizers()
764      struct finalizable_object * curr_fo;      struct finalizable_object * curr_fo;
765      int count = 0;      int count = 0;
766      word mem_freed_before;      word mem_freed_before;
     GC_bool first_time = TRUE;  
767      DCL_LOCK_STATE;      DCL_LOCK_STATE;
768            
769      while (GC_finalize_now != 0) {      while (GC_finalize_now != 0) {
# Line 772  int GC_invoke_finalizers() Line 771  int GC_invoke_finalizers()
771              DISABLE_SIGNALS();              DISABLE_SIGNALS();
772              LOCK();              LOCK();
773  #       endif  #       endif
774          if (first_time) {          if (count == 0) {
775              mem_freed_before = GC_mem_freed;              mem_freed_before = GC_mem_freed;
             first_time = FALSE;  
776          }          }
777          curr_fo = GC_finalize_now;          curr_fo = GC_finalize_now;
778  #       ifdef THREADS  #       ifdef THREADS
# Line 797  int GC_invoke_finalizers() Line 795  int GC_invoke_finalizers()
795              GC_free((GC_PTR)curr_fo);              GC_free((GC_PTR)curr_fo);
796  #       endif  #       endif
797      }      }
798      if (mem_freed_before != GC_mem_freed) {      if (count != 0 && mem_freed_before != GC_mem_freed) {
799          LOCK();          LOCK();
800          GC_finalizer_mem_freed += (GC_mem_freed - mem_freed_before);          GC_finalizer_mem_freed += (GC_mem_freed - mem_freed_before);
801          UNLOCK();          UNLOCK();

Legend:
Removed from v.1.2.2.1  
changed lines
  Added in v.1.2.2.1.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26