Browse Source

Fix RenderState cache leak - gc did not work properly
(Thanks to deflected for helping to track this down)

rdb 8 years ago
parent
commit
81e414030e
1 changed files with 3 additions and 3 deletions
  1. 3 3
      panda/src/pgraph/renderState.cxx

+ 3 - 3
panda/src/pgraph/renderState.cxx

@@ -947,8 +947,6 @@ garbage_collect() {
     return num_attribs;
     return num_attribs;
   }
   }
 
 
-  bool break_and_uniquify = (auto_break_cycles && uniquify_transforms);
-
   LightReMutexHolder holder(*_states_lock);
   LightReMutexHolder holder(*_states_lock);
 
 
   PStatTimer timer(_garbage_collect_pcollector);
   PStatTimer timer(_garbage_collect_pcollector);
@@ -961,10 +959,12 @@ garbage_collect() {
     return num_attribs;
     return num_attribs;
   }
   }
 
 
+  bool break_and_uniquify = (auto_break_cycles && uniquify_transforms);
+
   size_t si = _garbage_index;
   size_t si = _garbage_index;
 
 
   num_this_pass = min(num_this_pass, size);
   num_this_pass = min(num_this_pass, size);
-  size_t stop_at_element = (si + num_this_pass) % (size - 1);
+  size_t stop_at_element = (si + num_this_pass) & (size - 1);
 
 
   do {
   do {
     if (_states->has_element(si)) {
     if (_states->has_element(si)) {