diff --git a/Doc/Manual/Ruby.html b/Doc/Manual/Ruby.html index 564a48f37..fa8e621b2 100644 --- a/Doc/Manual/Ruby.html +++ b/Doc/Manual/Ruby.html @@ -2196,7 +2196,7 @@ $ ruby -e 'puts $:.join("\n")'
/usr/local/lib/ruby/site_ruby/1.6 /usr/ the zoo object, look up their Ruby object equivalent, and then call rb_gc_mark(). One possible implementation is:

-
%module example

%{
#include "example.h"
%}

/* Keep track of mappings between C/C++ structs/classes
and Ruby objects so we can implement a mark function. */
%trackobjects;

/* Specify the mark function */
%markfunc Zoo "Zoo_Mark";

%include "example.h"

%header %{

static void Zoo_Mark(void* ptr) {
Zoo* zoo = (Zoo*) ptr;

/* Loop over each object and tell the garbage collector
that we are holding a reference to them. */
int count = zoo->get_num_animals();

for(int i = 0; i < count; ++i) {
Animal* animal = zoo->get_animal(i);
VALUE object = SWIG_RubyInstanceFor(animal);

if (object != Qnil) {
rb_gc_mark(object);
}
}
}
%}
+
%module example

%{
#include "example.h"
%}

/* Keep track of mappings between C/C++ structs/classes
and Ruby objects so we can implement a mark function. */
%trackobjects;

/* Specify the mark function */
%markfunc Zoo "mark_Zoo";

%include "example.h"

%header %{

static void mark_Zoo(void* ptr) {
Zoo* zoo = (Zoo*) ptr;

/* Loop over each object and tell the garbage collector
that we are holding a reference to them. */
int count = zoo->get_num_animals();

for(int i = 0; i < count; ++i) {
Animal* animal = zoo->get_animal(i);
VALUE object = SWIG_RubyInstanceFor(animal);

if (object != Qnil) {
rb_gc_mark(object);
}
}
}
%}