fixed the problem with 'using' and protected mebers. now it seems to be safe to generate the protected members as protected again. all the test are running and the director_protected_runme.rb now test for the right access control

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5526 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2003-12-09 23:46:39 +00:00
commit f7e02f46fc
3 changed files with 33 additions and 22 deletions

View file

@ -13,6 +13,7 @@
char cvsroot_ruby_cxx[] = "$Header$";
#include "swigmod.h"
#define SWIG_PROTECTED_TARGET_METHODS 1
#ifndef MACSWIG
#include "swigconfig.h"
@ -599,23 +600,21 @@ public:
switch (current) {
case MEMBER_FUNC:
if (multipleInheritance) {
/*
const char* rb_define_method = !is_protected(n) ?
"rb_define_method" : "rb_define_protected_method";
*/
{
#ifdef SWIG_PROTECTED_TARGET_METHODS
const char* rb_define_method = is_protected(n) ?
"rb_define_protected_method" : "rb_define_method";
#else
const char* rb_define_method = "rb_define_method";
Printv(klass->init, tab4, rb_define_method,"(", klass->mImpl, ", \"",
iname, "\", ", wname, ", -1);\n", NIL);
} else {
/*
const char* rb_define_method = !is_protected(n) ?
"rb_define_method" : "rb_define_protected_method";
*/
const char* rb_define_method = "rb_define_method";
Printv(klass->init, tab4, rb_define_method, "(", klass->vname, ", \"",
iname, "\", ", wname, ", -1);\n", NIL);
}
#endif
if (multipleInheritance) {
Printv(klass->init, tab4, rb_define_method,"(", klass->mImpl, ", \"",
iname, "\", ", wname, ", -1);\n", NIL);
} else {
Printv(klass->init, tab4, rb_define_method, "(", klass->vname, ", \"",
iname, "\", ", wname, ", -1);\n", NIL);
}
}
break;
case CONSTRUCTOR_ALLOCATE:
Printv(s, tab4, "rb_define_alloc_func(", klass->vname, ", ", alloc_func, ");\n", NIL);