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.