当我尝试将模块包含到Ruby-Processing草图中时,它返回以下StackOverflowError:
matt$ rp5 run cylinder_test.rb
matt$ Error: Your application used more stack memory than the safety cap.
Specify -J-Xss####k to increase it (#### = cap size in KB).
Specify -w for full StackOverflowError stack trace
使用-w运行草图不提供其他信息。
模块Cylinder包含 Processing :: Proxy 模块,以便访问begin_shape和end_shape方法等。我已经尝试将方法定义为类方法和实例方法(在方法定义之前有和没有“self。”)。
module Cylinder
include Processing::Proxy
def self.cylinder( sides, r1, r2, h )
...
我尝试删除“include Processing :: Proxy”行,但它只是告诉我有未定义的常量和方法,它们包含在Processing :: Proxy中。所以这可能不是问题。
我的草图标题如下:
class CylinderTest < Processing::App
load '../controllers/branch_controller.rb'
load '../controllers/node_controller.rb'
require 'Cylinder.rb'
include Cylinder
...
我应该指出我对这些方法的工作有信心,因为当我将Cylinder模块本身编写为Ruby-Processing草图时,它运行得非常完美。
我正在使用Ruby-Processing 1.0.11和Ruby 1.8.7。
那么,如何在不引起堆栈溢出错误的情况下包含Cylinder模块?