1

每执行 3000 次左右,我就会在下面的代码中得到一个段错误,就y << v行了。

cache是一个字符串-> 对象哈希,而 enum_files 是一个帮助方法,使过滤访问更容易。

  def enum_files
    load_all
    Enumerator.new  do |y| 
      cache.each do |k,v|      
        y << v if yield(v)
      end
    end
  end

  def pages
    @cached_pages ||= enum_files { |p| p.is_page? && p.can_render? }.to_a
  end

  def posts
    @cached_posts ||= enum_files { |p| p.is_page? && p.can_render? && p.is_post? }.sort { |x, y| y.date <=> x.date }
  end

(完整来源http://hardwiredcms.com

我正在ruby 1.9.3p362运行OS X 10.8.2 [x86_64-darwin12.2.0]

这是完整的错误堆栈 (遗憾的是,没有向控制台或 CrashReporter 写入任何信息)

我在做傻事吗?

4

0 回答 0