1

モジュールを 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 には、特に begin_shape および end_shape メソッドにアクセスするためにProcessing::Proxyモジュールが含まれています。メソッドをクラス メソッドとインスタンス メソッドの両方として定義しようとしました (メソッド定義の前に「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 モジュールをインクルードするにはどうすればよいでしょうか?

4

0 に答える 0