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

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

error: ‘struct RString’ has no member named ‘ptr’

The code is:


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

static VALUE my_method(VALUE self, VALUE arg) {

char* name = 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.

2009/4/3 Iñaki Baz C. [email protected]:

static VALUE my_method(VALUE self, VALUE arg) {

    char* name = RSTRING(arg)->ptr;

It seems that I mut use:

char* name = RSTRING_PTR(arg);

Am I right?

2009/4/3 Iñaki Baz C. [email protected]:

    char* name = RSTRING_PTR(arg);

Am I right?

Autoreply: yes :slight_smile:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs