Fix potential name clashes with symbols in the Director class

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12062 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2010-05-27 20:55:24 +00:00
commit bb41eeb343
5 changed files with 31 additions and 31 deletions

View file

@ -100,19 +100,19 @@ namespace Swig {
class Director { class Director {
protected: protected:
zval *swig_self; zval *swig_self;
typedef std::map<void*, GCItem_var> ownership_map; typedef std::map<void*, GCItem_var> swig_ownership_map;
mutable ownership_map owner; mutable swig_ownership_map swig_owner;
public: public:
Director(zval* self) : swig_self(self) { Director(zval* self) : swig_self(self) {
} }
~Director() { ~Director() {
for (ownership_map::iterator i = owner.begin(); i != owner.end(); i++) { for (swig_ownership_map::iterator i = swig_owner.begin(); i != swig_owner.end(); i++) {
owner.erase(i); swig_owner.erase(i);
} }
} }
bool is_overriden_method(char *cname, char *lc_fname) { bool swig_is_overridden_method(char *cname, char *lc_fname) {
zval classname; zval classname;
zend_class_entry **ce; zend_class_entry **ce;
zend_function *mptr; zend_function *mptr;
@ -133,7 +133,7 @@ namespace Swig {
void swig_acquire_ownership(Type *vptr) const void swig_acquire_ownership(Type *vptr) const
{ {
if (vptr) { if (vptr) {
owner[vptr] = new GCItem_T<Type>(vptr); swig_owner[vptr] = new GCItem_T<Type>(vptr);
} }
} }
}; };

View file

@ -404,17 +404,17 @@ namespace Swig {
} }
/* methods to implement pseudo protected director members */ /* methods to implement pseudo protected director members */
virtual bool swig_get_inner(const char* /* name */) const { virtual bool swig_get_inner(const char* /* protected_method_name */) const {
return true; return true;
} }
virtual void swig_set_inner(const char* /* name */, bool /* val */) const { virtual void swig_set_inner(const char* /* protected_method_name */, bool /* val */) const {
} }
/* ownership management */ /* ownership management */
private: private:
typedef std::map<void*, GCItem_var> ownership_map; typedef std::map<void*, GCItem_var> swig_ownership_map;
mutable ownership_map owner; mutable swig_ownership_map swig_owner;
#ifdef __THREAD__ #ifdef __THREAD__
static PyThread_type_lock swig_mutex_own; static PyThread_type_lock swig_mutex_own;
#endif #endif
@ -425,7 +425,7 @@ namespace Swig {
{ {
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCArray_T<Type>(vptr); swig_owner[vptr] = new GCArray_T<Type>(vptr);
} }
} }
@ -434,7 +434,7 @@ namespace Swig {
{ {
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCItem_T<Type>(vptr); swig_owner[vptr] = new GCItem_T<Type>(vptr);
} }
} }
@ -442,7 +442,7 @@ namespace Swig {
{ {
if (vptr && own) { if (vptr && own) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCItem_Object(own); swig_owner[vptr] = new GCItem_Object(own);
} }
} }
@ -451,10 +451,10 @@ namespace Swig {
int own = 0; int own = 0;
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
ownership_map::iterator iter = owner.find(vptr); swig_ownership_map::iterator iter = swig_owner.find(vptr);
if (iter != owner.end()) { if (iter != swig_owner.end()) {
own = iter->second->get_own(); own = iter->second->get_own();
owner.erase(iter); swig_owner.erase(iter);
} }
} }
return own; return own;

View file

@ -327,8 +327,8 @@ namespace Swig {
/* ownership management */ /* ownership management */
private: private:
typedef std::map<void*, GCItem_var> ownership_map; typedef std::map<void*, GCItem_var> swig_ownership_map;
mutable ownership_map owner; mutable swig_ownership_map swig_owner;
#ifdef __PTHREAD__ #ifdef __PTHREAD__
static pthread_mutex_t swig_mutex_own; static pthread_mutex_t swig_mutex_own;
#endif #endif
@ -339,7 +339,7 @@ namespace Swig {
{ {
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCArray_T<Type>(vptr); swig_owner[vptr] = new GCArray_T<Type>(vptr);
} }
} }
@ -348,7 +348,7 @@ namespace Swig {
{ {
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCItem_T<Type>(vptr); swig_owner[vptr] = new GCItem_T<Type>(vptr);
} }
} }
@ -356,7 +356,7 @@ namespace Swig {
{ {
if (vptr && own) { if (vptr && own) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
owner[vptr] = new GCItem_Object(own); swig_owner[vptr] = new GCItem_Object(own);
} }
} }
@ -365,10 +365,10 @@ namespace Swig {
ruby_owntype own = 0; ruby_owntype own = 0;
if (vptr) { if (vptr) {
SWIG_GUARD(swig_mutex_own); SWIG_GUARD(swig_mutex_own);
ownership_map::iterator iter = owner.find(vptr); swig_ownership_map::iterator iter = swig_owner.find(vptr);
if (iter != owner.end()) { if (iter != swig_owner.end()) {
own = iter->second->get_own(); own = iter->second->get_own();
owner.erase(iter); swig_owner.erase(iter);
} }
} }
return own; return own;

View file

@ -799,7 +799,7 @@ public:
Wrapper_add_local(f, "director", "Swig::Director *director = 0"); Wrapper_add_local(f, "director", "Swig::Director *director = 0");
Printf(f->code, "director = dynamic_cast<Swig::Director*>(arg1);\n"); Printf(f->code, "director = dynamic_cast<Swig::Director*>(arg1);\n");
Wrapper_add_local(f, "upcall", "bool upcall = false"); Wrapper_add_local(f, "upcall", "bool upcall = false");
Printf(f->code, "upcall = !director->is_overriden_method((char *)\"%s\", (char *)\"%s\");\n", Printf(f->code, "upcall = !director->swig_is_overridden_method((char *)\"%s\", (char *)\"%s\");\n",
Swig_class_name(Swig_methodclass(n)), name); Swig_class_name(Swig_methodclass(n)), name);
} }

View file

@ -2721,15 +2721,15 @@ public:
Printf(f_directors_h, "\n\n"); Printf(f_directors_h, "\n\n");
Printf(f_directors_h, "/* Internal Director utilities */\n"); Printf(f_directors_h, "/* Internal Director utilities */\n");
Printf(f_directors_h, "public:\n"); Printf(f_directors_h, "public:\n");
Printf(f_directors_h, " bool swig_get_inner(const char* name) const {\n"); Printf(f_directors_h, " bool swig_get_inner(const char* protected_method_name) const {\n");
Printf(f_directors_h, " std::map<std::string, bool>::const_iterator iv = inner.find(name);\n"); Printf(f_directors_h, " std::map<std::string, bool>::const_iterator iv = swig_inner.find(protected_method_name);\n");
Printf(f_directors_h, " return (iv != inner.end() ? iv->second : false);\n"); Printf(f_directors_h, " return (iv != swig_inner.end() ? iv->second : false);\n");
Printf(f_directors_h, " }\n\n"); Printf(f_directors_h, " }\n\n");
Printf(f_directors_h, " void swig_set_inner(const char* name, bool val) const\n"); Printf(f_directors_h, " void swig_set_inner(const char* protected_method_name, bool val) const\n");
Printf(f_directors_h, " { inner[name] = val;}\n\n"); Printf(f_directors_h, " { swig_inner[protected_method_name] = val;}\n\n");
Printf(f_directors_h, "private:\n"); Printf(f_directors_h, "private:\n");
Printf(f_directors_h, " mutable std::map<std::string, bool> inner;\n"); Printf(f_directors_h, " mutable std::map<std::string, bool> swig_inner;\n");
} }
if (director_method_index) { if (director_method_index) {