From 61b616f0f7758b6231290b43cd3878322b467bcd Mon Sep 17 00:00:00 2001 From: Jeremy Roach Date: Wed, 2 Jul 2008 14:28:43 -0500 Subject: [PATCH] add CompiledMethod#all_methods Convenience method to return an array of all CompiledMethods reachable from self --- kernel/core/compiled_method.rb | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/kernel/core/compiled_method.rb b/kernel/core/compiled_method.rb index a552b3b..b1b0b24 100644 --- a/kernel/core/compiled_method.rb +++ b/kernel/core/compiled_method.rb @@ -461,6 +461,22 @@ class CompiledMethod literals.select {|lit| lit.kind_of? CompiledMethod} end + # Convenience method to return an array of all CompiledMethods + # reachable from self + # + def all_methods(obj = self) + case obj + when CompiledMethod + cmethods = [obj] + obj.literals.each do |elem| + cmethods += all_methods(elem) + end + cmethods + else + [] + end + end + # Convenience method to return an array of the SendSites from # this CompiledMethod's literals. -- 1.5.4