Remove warning: 'self' is a ruby keyword, renaming to 'C_self' since improving autodoc for Ruby

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12882 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2011-12-21 22:01:27 +00:00
commit a5f8ffba91
4 changed files with 40 additions and 43 deletions

View file

@ -10,7 +10,7 @@
virtual std::string ping() { return "Foo::ping()"; }
virtual std::string pong() { return "Foo::pong();" + ping(); }
static Foo* get_self(Foo *self) {return self;}
static Foo* get_self(Foo *slf) {return slf;}
};
@ -27,7 +27,7 @@
virtual std::string ping();
virtual std::string pong();
static Foo* get_self(Foo *self);
static Foo* get_self(Foo *slf);
};

View file

@ -55,14 +55,14 @@ NAME() {
return new TYPE();
}
~NAME() {
if (self) delete self;
if ($self) delete $self;
}
#else
NAME() {
return (TYPE *) calloc(1,sizeof(TYPE));
}
~NAME() {
if (self) free(self);
if ($self) free($self);
}
#endif
}
@ -70,13 +70,13 @@ NAME() {
%extend NAME {
void assign(TYPE value) {
*self = value;
*$self = value;
}
TYPE value() {
return *self;
return *$self;
}
TYPE * cast() {
return self;
return $self;
}
static NAME * frompointer(TYPE *t) {
return (NAME *) t;
@ -126,34 +126,34 @@ static TYPE *copy_##NAME(TYPE value) { %}
#ifdef __cplusplus
%{ return new TYPE(value); %}
#else
%{ TYPE *self = (TYPE *) calloc(1,sizeof(TYPE));
*self = value;
return self; %}
%{ TYPE *obj = (TYPE *) calloc(1,sizeof(TYPE));
*obj = value;
return obj; %}
#endif
%{}
static void delete_##NAME(TYPE *self) { %}
static void delete_##NAME(TYPE *obj) { %}
#ifdef __cplusplus
%{ if (self) delete self; %}
%{ if (obj) delete obj; %}
#else
%{ if (self) free(self); %}
%{ if (obj) free(obj); %}
#endif
%{}
static void NAME ##_assign(TYPE *self, TYPE value) {
*self = value;
static void NAME ##_assign(TYPE *obj, TYPE value) {
*obj = value;
}
static TYPE NAME ##_value(TYPE *self) {
return *self;
static TYPE NAME ##_value(TYPE *obj) {
return *obj;
}
%}
TYPE *new_##NAME();
TYPE *copy_##NAME(TYPE value);
void delete_##NAME(TYPE *self);
void NAME##_assign(TYPE *self, TYPE value);
TYPE NAME##_value(TYPE *self);
void delete_##NAME(TYPE *obj);
void NAME##_assign(TYPE *obj, TYPE value);
TYPE NAME##_value(TYPE *obj);
%enddef

View file

@ -55,20 +55,20 @@ typedef struct {
return %new_instance(TYPE);
}
~NAME() {
if (self) %delete(self);
if ($self) %delete($self);
}
}
%extend NAME {
void assign(TYPE value) {
*self = value;
*$self = value;
}
TYPE value() {
return *self;
return *$self;
}
TYPE * cast() {
return self;
return $self;
}
static NAME * frompointer(TYPE *t) {
return (NAME *) t;
@ -113,24 +113,24 @@ typedef struct {
return %new_copy(value, TYPE);
}
static void delete_##NAME(TYPE *self) {
if (self) %delete(self);
static void delete_##NAME(TYPE *obj) {
if (obj) %delete(obj);
}
static void NAME ##_assign(TYPE *self, TYPE value) {
*self = value;
static void NAME ##_assign(TYPE *obj, TYPE value) {
*obj = value;
}
static TYPE NAME ##_value(TYPE *self) {
return *self;
static TYPE NAME ##_value(TYPE *obj) {
return *obj;
}
%}
TYPE *new_##NAME();
TYPE *copy_##NAME(TYPE value);
void delete_##NAME(TYPE *self);
void NAME##_assign(TYPE *self, TYPE value);
TYPE NAME##_value(TYPE *self);
void delete_##NAME(TYPE *obj);
void NAME##_assign(TYPE *obj, TYPE value);
TYPE NAME##_value(TYPE *obj);
%enddef

View file

@ -657,9 +657,9 @@ private:
Printf(doc, " %s.new(%s)", class_name, paramList);
else
Printf(doc, " %s.new", class_name);
} else
Printf(doc, " %s.new(%s)", class_name,
make_autodocParmList(n, showTypes));
} else {
Printf(doc, " %s.new(%s)", class_name, make_autodocParmList(n, showTypes));
}
break;
case AUTODOC_DTOR:
@ -2640,9 +2640,12 @@ public:
current = CONSTRUCTOR_ALLOCATE;
Swig_name_register("construct", "%n%c_allocate");
Language::constructorHandler(n);
String* docs = docstring(n, AUTODOC_CTOR);
Printf(f_wrappers, "%s", docs);
Delete(docs);
/*
* If we're wrapping the constructor of a C++ director class, prepend a new parameter
* to receive the scripting language object (e.g. 'self')
@ -2665,13 +2668,7 @@ public:
Delete(self);
}
/* Now do the instance initialize method */
String* docs = docstring(n, AUTODOC_CTOR);
Printf(f_wrappers, "%s", docs);
Delete(docs);
current = CONSTRUCTOR_INITIALIZE;
Swig_name_register("construct", "new_%n%c");
Language::constructorHandler(n);