I’m now able to produce a ruby symbol from C
I’m also able to read the keys of a hash, i need to know how to
transform a key being a T_SYMBOL into a cstring (the reverse) ???
also using :
long size = RHASH( ( VALUE )options_hash )->tbl->num_entries;
i get the following error at compil time :
symbol_test.c: In function m_symbol_test_init:
symbol_test.c:109: error: dereferencing pointer to incomplete type
i don’t understand very much this message.
however i can get the hash size by :
hlen = RARRAY( keys )->len;
with :
VALUE keys = rb_funcall( options_hash, rb_intern( “keys” ), 0 );
my “options_hash” is coming from :
rb_scan_args( argc, argv, “11”, &src_path, &options_hash );
it is a VALUE :
VALUE src_path, options_hash, noop, verbose;
help appreciated,
Yvon
Hi,
At Sat, 18 Aug 2007 20:59:59 +0900,
unbewusst wrote in [ruby-talk:265267]:
i get the following error at compil time :
symbol_test.c: In function m_symbol_test_init:
symbol_test.c:109: error: dereferencing pointer to incomplete type
i don’t understand very much this message.
You need to include st.h too.
But I guess what you need first is the knowledge of C.
On 19 août, 05:27, Nobuyoshi N. [email protected] wrote:
You need to include st.h too.
But I guess what you need first is the knowledge of C.
OK, thanks, including st.h is OK, BUT using :
rb_id2name( SYM2ID( a key T_SYMBOL from a RHASH ))
i get allways (null) even if i’m sure, from ruby side the, symbols
are :
:verbose and :noop
isn’t the above the correct way to get the name of a symbol ???
Yvon
Hi,
At Mon, 20 Aug 2007 01:44:57 +0900,
unbewusst wrote in [ruby-talk:265404]:
rb_id2name( SYM2ID( a key T_SYMBOL from a RHASH ))
i get allways (null) even if i’m sure, from ruby side the, symbols
are :
:verbose and :noop
isn’t the above the correct way to get the name of a symbol ???
That portion you mentioned is correct. So something is wrong
where you didn’t.
On 20 août, 01:40, Nobuyoshi N. [email protected] wrote:
:verbose and :noop
isn’t the above the correct way to get the name of a symbol ???
That portion you mentioned is correct. So something is wrong
where you didn’t.
OK, i’ll look again at that…
thanks,
Yvon