(Ruby 1.9.1) error: ‘struct RString’ has no memb er named‘ptr’

  • Thread starter Iñaki Baz Castillo
  • Start date
I

Iñaki Baz Castillo

Hi, trying to compile a C extension I get this error in Ruby 1.9.1:

error: =E2=80=98struct RString=E2=80=99 has no member named =E2=80=98ptr=
=E2=80=99

The code is:

---------------------------------------
#include <ruby.h>
#include <stdio.h>

static VALUE my_method(VALUE self, VALUE arg) {
=09
char* name =3D RSTRING(arg)->ptr;
---------------------------------------


I find in ruby.h:

-------------------------------------------
struct RString {
struct RBasic basic;
union {
struct {
long len;
char *ptr;
union {
long capa;
VALUE shared;
} aux;
} heap;
char ary[RSTRING_EMBED_LEN_MAX + 1];
} as;
};
------------------------------------------


Perhaps a change from 1.8? How should I access the "ptr" element?
Thanks.


--=20
I=C3=B1aki Baz Castillo
<[email protected]>
 
I

Iñaki Baz Castillo

2009/4/3 I=C3=B1aki Baz Castillo said:
Hi, trying to compile a C extension I get this error in Ruby 1.9.1:

=C2=A0error: =E2=80=98struct RString=E2=80=99 has no member named =E2=80= =98ptr=E2=80=99

The code is:

---------------------------------------
#include <ruby.h>
#include <stdio.h>

static VALUE my_method(VALUE self, VALUE arg) {

=C2=A0 =C2=A0 =C2=A0 =C2=A0char* name =3D RSTRING(arg)->ptr;
---------------------------------------

It seems that I mut use:

char* name =3D RSTRING_PTR(arg);

Am I right?


--=20
I=C3=B1aki Baz Castillo
<[email protected]>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,070
Latest member
BiogenixGummies

Latest Threads

Top