diff --git a/SWIG/Examples/test-suite/ruby/director_unroll_runme.rb b/SWIG/Examples/test-suite/ruby/director_unroll_runme.rb new file mode 100644 index 000000000..957918f02 --- /dev/null +++ b/SWIG/Examples/test-suite/ruby/director_unroll_runme.rb @@ -0,0 +1,17 @@ +require 'director_unroll' + +class MyFoo < Director_unroll::Foo + def ping + "MyFoo::ping()" + end +end + +a = MyFoo.new + +b = Director_unroll::Bar.new + +b.set(a) +c = b.get() + +raise RuntimeError if a != c + diff --git a/SWIG/Source/Modules/ruby.cxx b/SWIG/Source/Modules/ruby.cxx index 4f7278789..39727b54c 100644 --- a/SWIG/Source/Modules/ruby.cxx +++ b/SWIG/Source/Modules/ruby.cxx @@ -1297,7 +1297,7 @@ public: Wrapper_add_local(f, "resultdirector", "__DIRECTOR__ *resultdirector = 0"); Printf(f->code, "resultdirector = dynamic_cast<__DIRECTOR__*>(result);\n"); Printf(f->code, "if (resultdirector) {\n"); - Printf(f->code, " resultobj = resultdirector->__get_self();\n"); + Printf(f->code, " vresult = resultdirector->__get_self();\n"); Printf(f->code, "} else {\n"); Printf(f->code,"%s\n", tm); Printf(f->code, "}\n");