How I retrieve a 'standalone' symbol on Ruby's C extension API
Asked Answered
B

1

6

I want to return several values from a C function, and IMHO, a hash is a good option. I first used rb_intern('A_KEY') to create the keys, but the extension crashed. Now, I am using rb_str_new2, but I prefer symbols.

How do I create a new symbol, and use it without referring to a class or a method?

Bonita answered 24/12, 2010 at 15:37 Comment(0)
S
8

You need to use the ID2SYM macro to convert the identifier that you get from rb_intern into a ruby symbol. Try changing

rb_intern('A_KEY')

to

ID2SYM(rb_intern('A_KEY'))
Staw answered 24/12, 2010 at 17:47 Comment(1)
Thank you very much! Works without problem on 1.9Bonita

© 2022 - 2024 — McMap. All rights reserved.