Project

General

Profile

Actions

Bug #9377

closed

Seg fault on call of missing super from self.extended in a Module

Added by jemc (Joe McIlvain) over 10 years ago. Updated about 10 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:59619]

Description

Seg fault on call of missing super from self.extended in a Module
on 2.1.0-p0 and on 2.1.0-dev
x86_64 linux

Code to reproduce:

module A
  def foo; super end

  def self.extended(obj)
    instance_method(:foo).bind(obj).call
  end
end

Object.new.extend A

(stack trace is attached)

Note that calling from after extend is okay: (but raises missing super error)

module A
  def foo; super end
end

Object.new.extend(A).foo #=> in `foo': super: no superclass method `foo' for #<Object:0x007fabf43d2730> (NoMethodError)

Also note that calling from within the extend as before, but having the method defined is also okay (and raises no error)

module ABase
  def foo; end
end

module A
  include ABase
  def foo; super end

  def self.extended(obj)
    instance_method(:foo).bind(obj).call
  end
end

Object.new.extend A

Files

segfault.txt (10 KB) segfault.txt jemc (Joe McIlvain), 01/07/2014 04:15 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0