summaryrefslogtreecommitdiffstats
path: root/lib/evendoors/twirl.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-05-04 16:04:58 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-05-04 16:04:58 +0200
commit30b14d7e8437d93a78737a4bf536ce8a7f65450a (patch)
tree33225ec6f2f3bbb768e493c53e49167d6457e84b /lib/evendoors/twirl.rb
parent73029ab1d755f1b52c64ffc3a6c2778f1c7ff527 (diff)
downloadedoors-ruby-30b14d7e8437d93a78737a4bf536ce8a7f65450a.zip
edoors-ruby-30b14d7e8437d93a78737a4bf536ce8a7f65450a.tar.gz
Twirl.release_p : must release merged particles
Diffstat (limited to 'lib/evendoors/twirl.rb')
-rw-r--r--lib/evendoors/twirl.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/evendoors/twirl.rb b/lib/evendoors/twirl.rb
index 5aa7d25..8742220 100644
--- a/lib/evendoors/twirl.rb
+++ b/lib/evendoors/twirl.rb
@@ -17,6 +17,10 @@ module EvenDoors
attr_accessor :debug
#
def release_p p
+ # hope there is no circular loop
+ while p2=p.merged_shift
+ release_p p2
+ end
( @pool[p.class] ||= [] ) << p
end
#