Hi,
In message "Re: problem with rb_rescue2() ?"
on 03/04/19, Mathieu Bouchard <matju / sympatico.ca> writes:
|But in the meanwhile I thought about it and figured out I can use Fixnums
|anyway -- my pointers are 0 mod 4 so i can >>2 them and then pass them to
|INT2NUM() like I'm doing alot in other parts of my program.
|
|But I have to report a problem I have. I'll try to make a summary of the
|stack:
Hmm,
(eval):1: [BUG] rb_gc_mark(): unknown data type 0x20(0xbfffa560)
means rb_gc_mark() was called with non Ruby object pointer, which
should not happen.
|#5 0x404776fa in rb_gc_mark (ptr=3221202272) at gc.c:513
This is a problem (ptr=3221202272=0xbfffa560), and line rb_gc_mark()
is called from
|#13 0x4047834b in rb_gc () at gc.c:1240
which is
/* mark protected global variables */
for (list = global_List; list; list = list->next) {
rb_gc_mark(*list->varptr);
}
so I assume values of C variables which is protected by
rb_register_address() or rb_global_variable() is not initialized
sometimes. They should _always_ point to Ruby values.
matz.