Class: RubyMemcheck::Stack
- Inherits:
-
Object
- Object
- RubyMemcheck::Stack
- Defined in:
- lib/ruby_memcheck/stack.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
-
#frames ⇒ Object
readonly
Returns the value of attribute frames.
Instance Method Summary collapse
-
#initialize(configuration, stack_xml) ⇒ Stack
constructor
A new instance of Stack.
- #skip? ⇒ Boolean
Constructor Details
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
5 6 7 |
# File 'lib/ruby_memcheck/stack.rb', line 5 def configuration @configuration end |
#frames ⇒ Object (readonly)
Returns the value of attribute frames.
5 6 7 |
# File 'lib/ruby_memcheck/stack.rb', line 5 def frames @frames end |
Instance Method Details
#skip? ⇒ Boolean
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/ruby_memcheck/stack.rb', line 12 def skip? in_binary = false frames.each do |frame| fn = frame.fn if frame.in_ruby? # If a stack from from the binary was encountered first, then this # memory leak did not occur from Ruby unless in_binary # Skip this stack because it was called from Ruby return true if configuration.skipped_ruby_functions.any? { |r| r.match?(fn) } end elsif frame.in_binary? in_binary = true # Skip the Init function because it is only ever called once, so # leaks in it cannot cause memory bloat return true if fn == "Init_#{configuration.binary_name}" end end # Skip if the stack was never in the binary because it is very likely # not a leak in the native gem !in_binary end |