Fixes to comply with with ISO/IEC 14882:1998(E) 17.4.3.1.2 (symbol names)
Numerous symbols in the generated director code. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5153 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c6efb20a3f
commit
2704ffe81f
4 changed files with 60 additions and 51 deletions
|
|
@ -432,9 +432,9 @@ class JAVA : public Language {
|
||||||
|
|
||||||
if (n_dmethods > 0) {
|
if (n_dmethods > 0) {
|
||||||
Putc('\n', f_im);
|
Putc('\n', f_im);
|
||||||
Printf(f_im, " private final static native void __module_init();\n");
|
Printf(f_im, " private final static native void swig_module_init();\n");
|
||||||
Printf(f_im, " static {\n");
|
Printf(f_im, " static {\n");
|
||||||
Printf(f_im, " __module_init();\n");
|
Printf(f_im, " swig_module_init();\n");
|
||||||
Printf(f_im, " }\n");
|
Printf(f_im, " }\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -712,7 +712,7 @@ class JAVA : public Language {
|
||||||
bool feature_extend = !Cmp(Getattr(n, "feature:extend"), "1");
|
bool feature_extend = !Cmp(Getattr(n, "feature:extend"), "1");
|
||||||
String *director_class = NULL;
|
String *director_class = NULL;
|
||||||
String *director_uargs = NewString("director->swig_get_self()");
|
String *director_uargs = NewString("director->swig_get_self()");
|
||||||
String *dirimclass_meth = NewStringf("__DIRECTOR__%s", overloaded_name);
|
String *dirimclass_meth = NewStringf("SwigDirector_%s", overloaded_name);
|
||||||
UpcallData *udata = NULL;
|
UpcallData *udata = NULL;
|
||||||
String *class_methodidx = NULL;
|
String *class_methodidx = NULL;
|
||||||
String *imclass_methodidx = NULL;
|
String *imclass_methodidx = NULL;
|
||||||
|
|
@ -723,7 +723,7 @@ class JAVA : public Language {
|
||||||
|
|
||||||
if (member_func_flag && isVirtual && feature_director && !(static_flag || constructor || destructor)) {
|
if (member_func_flag && isVirtual && feature_director && !(static_flag || constructor || destructor)) {
|
||||||
director_method = true;
|
director_method = true;
|
||||||
director_class = NewStringf("__DIRECTOR__%s", proxy_class_name);
|
director_class = NewStringf("SwigDirector_%s", proxy_class_name);
|
||||||
udata = getUpcallMethodData(dirimclass_meth, Getattr(n, "decl"));
|
udata = getUpcallMethodData(dirimclass_meth, Getattr(n, "decl"));
|
||||||
imclass_methodidx = Getattr(udata, "imclass_methodidx");
|
imclass_methodidx = Getattr(udata, "imclass_methodidx");
|
||||||
class_methodidx = Getattr(udata, "class_methodidx");
|
class_methodidx = Getattr(udata, "class_methodidx");
|
||||||
|
|
@ -1052,10 +1052,10 @@ class JAVA : public Language {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_void_return)
|
if (!is_void_return)
|
||||||
Printf(f->code, " jresult = (%s) jenv->%s(jcls, __SWIG_director_methids[%s], %s);\n",
|
Printf(f->code, " jresult = (%s) jenv->%s(jcls, Swig::director_methids[%s], %s);\n",
|
||||||
c_return_type, upcall_method, imclass_methodidx, director_uargs);
|
c_return_type, upcall_method, imclass_methodidx, director_uargs);
|
||||||
else
|
else
|
||||||
Printf(f->code, " jenv->%s(jcls, __SWIG_director_methids[%s], %s);\n",
|
Printf(f->code, " jenv->%s(jcls, Swig::director_methids[%s], %s);\n",
|
||||||
upcall_method, imclass_methodidx, director_uargs);
|
upcall_method, imclass_methodidx, director_uargs);
|
||||||
|
|
||||||
if (!recursive_upcall)
|
if (!recursive_upcall)
|
||||||
|
|
@ -1504,10 +1504,9 @@ class JAVA : public Language {
|
||||||
"\n",
|
"\n",
|
||||||
NIL);
|
NIL);
|
||||||
|
|
||||||
/* Insert declaration for __director_connect(), if this class has
|
/* Insert declaration for swig_director_connect(), if this class has directors enabled */
|
||||||
directors enabled */
|
|
||||||
if (parentNode(n) && Swig_directorclass(n)) {
|
if (parentNode(n) && Swig_directorclass(n)) {
|
||||||
Printf(proxy_class_def, " private final native static void __director_connect(%s self, long cptr);\n\n",
|
Printf(proxy_class_def, " private final native static void swig_director_connect(%s self, long cptr);\n\n",
|
||||||
proxy_class_name);
|
proxy_class_name);
|
||||||
|
|
||||||
Printf(proxy_class_def, " protected void swig_director_disconnect()\n");
|
Printf(proxy_class_def, " protected void swig_director_disconnect()\n");
|
||||||
|
|
@ -1921,18 +1920,20 @@ class JAVA : public Language {
|
||||||
/* Add director connection call if this class has directors. */
|
/* Add director connection call if this class has directors. */
|
||||||
|
|
||||||
if (feature_director) {
|
if (feature_director) {
|
||||||
Printf(proxy_class_code, " __director_connect(this, swigCPtr);\n");
|
String *swig_director_connect = NewString("swig_director_connect");
|
||||||
|
Printv(proxy_class_code, " ", swig_director_connect, "(this, swigCPtr);\n", NIL);
|
||||||
|
|
||||||
if (!emitted_connect) {
|
if (!emitted_connect) {
|
||||||
String *jni_class_name = makeValidJniName(proxy_class_name);
|
String *jni_class_name = makeValidJniName(proxy_class_name);
|
||||||
|
String *swig_director_connect_jni = makeValidJniName(swig_director_connect);
|
||||||
String *norm_name = SwigType_namestr(Getattr(n, "name"));
|
String *norm_name = SwigType_namestr(Getattr(n, "name"));
|
||||||
Wrapper *conn_wrap;
|
Wrapper *conn_wrap;
|
||||||
|
|
||||||
conn_wrap = NewWrapper();
|
conn_wrap = NewWrapper();
|
||||||
Printf(conn_wrap->def, "JNIEXPORT void JNICALL Java_%s%s__1_1director_1connect(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg) {",
|
Printf(conn_wrap->def, "JNIEXPORT void JNICALL Java_%s%s_%s(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg) {",
|
||||||
jnipackage, jni_class_name);
|
jnipackage, jni_class_name, swig_director_connect_jni);
|
||||||
Printf(conn_wrap->code, " %s *obj = *((%s **) &objarg);\n", norm_name, norm_name);
|
Printf(conn_wrap->code, " %s *obj = *((%s **) &objarg);\n", norm_name, norm_name);
|
||||||
Printf(conn_wrap->code, " __DIRECTOR__%s *director = dynamic_cast<__DIRECTOR__%s *>(obj);\n",
|
Printf(conn_wrap->code, " SwigDirector_%s *director = dynamic_cast<SwigDirector_%s *>(obj);\n",
|
||||||
Getattr(n, "sym:name"), Getattr(n, "sym:name"));
|
Getattr(n, "sym:name"), Getattr(n, "sym:name"));
|
||||||
Printf(conn_wrap->code, " if (director) {\n");
|
Printf(conn_wrap->code, " if (director) {\n");
|
||||||
Printf(conn_wrap->code, " director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself));\n");
|
Printf(conn_wrap->code, " director->swig_connect_director(jenv, jself, jenv->GetObjectClass(jself));\n");
|
||||||
|
|
@ -1940,11 +1941,13 @@ class JAVA : public Language {
|
||||||
Printf(conn_wrap->code, "}\n");
|
Printf(conn_wrap->code, "}\n");
|
||||||
|
|
||||||
Wrapper_print(conn_wrap, f_wrappers);
|
Wrapper_print(conn_wrap, f_wrappers);
|
||||||
|
Delete(swig_director_connect_jni);
|
||||||
Delete(norm_name);
|
Delete(norm_name);
|
||||||
Delete(jni_class_name);
|
Delete(jni_class_name);
|
||||||
DelWrapper(conn_wrap);
|
DelWrapper(conn_wrap);
|
||||||
emitted_connect = true;
|
emitted_connect = true;
|
||||||
}
|
}
|
||||||
|
Delete(swig_director_connect);
|
||||||
}
|
}
|
||||||
|
|
||||||
Printf(proxy_class_code, " }\n\n");
|
Printf(proxy_class_code, " }\n\n");
|
||||||
|
|
@ -2429,6 +2432,8 @@ class JAVA : public Language {
|
||||||
if (n_dmethods) {
|
if (n_dmethods) {
|
||||||
Wrapper *w = NewWrapper();
|
Wrapper *w = NewWrapper();
|
||||||
String *jni_imclass_name = makeValidJniName(imclass_name);
|
String *jni_imclass_name = makeValidJniName(imclass_name);
|
||||||
|
String *swig_module_init = NewString("swig_module_init");
|
||||||
|
String *swig_module_init_jni = makeValidJniName(swig_module_init);
|
||||||
String *dmethod_data = NewString("");
|
String *dmethod_data = NewString("");
|
||||||
int n_methods = 0;
|
int n_methods = 0;
|
||||||
Iterator udata_iter;
|
Iterator udata_iter;
|
||||||
|
|
@ -2446,11 +2451,13 @@ class JAVA : public Language {
|
||||||
Putc('\n', dmethod_data);
|
Putc('\n', dmethod_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
Printf(f_runtime, "static jclass __SWIG_jclass_%s = NULL;\n", imclass_name);
|
Printf(f_runtime, "namespace Swig {\n");
|
||||||
Printf(f_runtime, "static jmethodID __SWIG_director_methids[%d];\n", n_methods);
|
Printf(f_runtime, " static jclass jclass_%s = NULL;\n", imclass_name);
|
||||||
|
Printf(f_runtime, " static jmethodID director_methids[%d];\n", n_methods);
|
||||||
|
Printf(f_runtime, "}\n");
|
||||||
|
|
||||||
Printf(w->def, "JNIEXPORT void JNICALL Java_%s%s__1_1module_1init(JNIEnv *jenv, jclass jcls) {",
|
Printf(w->def, "JNIEXPORT void JNICALL Java_%s%s_%s(JNIEnv *jenv, jclass jcls) {",
|
||||||
jnipackage, jni_imclass_name);
|
jnipackage, jni_imclass_name, swig_module_init_jni);
|
||||||
Printf(w->code, "static struct {\n");
|
Printf(w->code, "static struct {\n");
|
||||||
Printf(w->code, " const char *method;\n");
|
Printf(w->code, " const char *method;\n");
|
||||||
Printf(w->code, " const char *signature;\n");
|
Printf(w->code, " const char *signature;\n");
|
||||||
|
|
@ -2460,17 +2467,19 @@ class JAVA : public Language {
|
||||||
|
|
||||||
Wrapper_add_local(w, "i", "int i");
|
Wrapper_add_local(w, "i", "int i");
|
||||||
|
|
||||||
Printf(w->code, "__SWIG_jclass_%s = (jclass) jenv->NewGlobalRef(jcls);\n", imclass_name);
|
Printf(w->code, "Swig::jclass_%s = (jclass) jenv->NewGlobalRef(jcls);\n", imclass_name);
|
||||||
Printf(w->code, "if (__SWIG_jclass_%s == NULL) return;\n", imclass_name);
|
Printf(w->code, "if (Swig::jclass_%s == NULL) return;\n", imclass_name);
|
||||||
Printf(w->code, "for (i = 0; i < (int) (sizeof(methods)/sizeof(methods[0])); ++i) {\n");
|
Printf(w->code, "for (i = 0; i < (int) (sizeof(methods)/sizeof(methods[0])); ++i) {\n");
|
||||||
Printf(w->code, " __SWIG_director_methids[i] = jenv->GetStaticMethodID(jcls, methods[i].method, methods[i].signature);\n");
|
Printf(w->code, " Swig::director_methids[i] = jenv->GetStaticMethodID(jcls, methods[i].method, methods[i].signature);\n");
|
||||||
Printf(w->code, " if (__SWIG_director_methids[i] == NULL) return;\n");
|
Printf(w->code, " if (Swig::director_methids[i] == NULL) return;\n");
|
||||||
Printf(w->code, "}\n");
|
Printf(w->code, "}\n");
|
||||||
|
|
||||||
Printf(w->code, "}\n");
|
Printf(w->code, "}\n");
|
||||||
|
|
||||||
Wrapper_print(w, f_wrappers);
|
Wrapper_print(w, f_wrappers);
|
||||||
Delete(dmethod_data);
|
Delete(dmethod_data);
|
||||||
|
Delete(swig_module_init_jni);
|
||||||
|
Delete(swig_module_init);
|
||||||
Delete(jni_imclass_name);
|
Delete(jni_imclass_name);
|
||||||
DelWrapper(w);
|
DelWrapper(w);
|
||||||
}
|
}
|
||||||
|
|
@ -2594,7 +2603,7 @@ class JAVA : public Language {
|
||||||
|
|
||||||
bool output_director = true;
|
bool output_director = true;
|
||||||
bool recursive_upcall = false;
|
bool recursive_upcall = false;
|
||||||
String *dirclassname = NewStringf("__DIRECTOR__%s", classname);
|
String *dirclassname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *qualified_name = NewStringf("%s::%s", dirclassname, name);
|
String *qualified_name = NewStringf("%s::%s", dirclassname, name);
|
||||||
String *jnidesc = NewString("");
|
String *jnidesc = NewString("");
|
||||||
String *classdesc = NewString("");
|
String *classdesc = NewString("");
|
||||||
|
|
@ -2618,7 +2627,7 @@ class JAVA : public Language {
|
||||||
// we're consistent with the sym:overload name in functionWrapper. (?? when
|
// we're consistent with the sym:overload name in functionWrapper. (?? when
|
||||||
// does the overloaded method name get set?)
|
// does the overloaded method name get set?)
|
||||||
|
|
||||||
imclass_dmethod = NewStringf("__DIRECTOR__%s", Swig_name_member(classname, overloaded_name));
|
imclass_dmethod = NewStringf("SwigDirector_%s", Swig_name_member(classname, overloaded_name));
|
||||||
|
|
||||||
// Get the proper name for the parent node (should be a class... hint)
|
// Get the proper name for the parent node (should be a class... hint)
|
||||||
|
|
||||||
|
|
@ -3014,10 +3023,10 @@ class JAVA : public Language {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_void) {
|
if (!is_void) {
|
||||||
Printf(w->code, "jresult = (%s) jenv->%s(__SWIG_jclass_%s, __SWIG_director_methids[%s], %s);\n",
|
Printf(w->code, "jresult = (%s) jenv->%s(Swig::jclass_%s, Swig::director_methids[%s], %s);\n",
|
||||||
jniret_type, methop, imclass_name, methid, jupcall_args);
|
jniret_type, methop, imclass_name, methid, jupcall_args);
|
||||||
} else {
|
} else {
|
||||||
Printf(w->code, "jenv->%s(__SWIG_jclass_%s, __SWIG_director_methids[%s], %s);\n",
|
Printf(w->code, "jenv->%s(Swig::jclass_%s, Swig::director_methids[%s], %s);\n",
|
||||||
methop, imclass_name, methid, jupcall_args);
|
methop, imclass_name, methid, jupcall_args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3122,7 +3131,7 @@ class JAVA : public Language {
|
||||||
Node *parent = parentNode(n);
|
Node *parent = parentNode(n);
|
||||||
String *decl = Getattr(n, "decl");;
|
String *decl = Getattr(n, "decl");;
|
||||||
String *supername = Swig_class_name(parent);
|
String *supername = Swig_class_name(parent);
|
||||||
String *classname = NewStringf("__DIRECTOR__%s", supername);
|
String *classname = NewStringf("SwigDirector_%s", supername);
|
||||||
String *sub = NewString("");
|
String *sub = NewString("");
|
||||||
Parm *p;
|
Parm *p;
|
||||||
ParmList *superparms = Getattr(n, "parms");
|
ParmList *superparms = Getattr(n, "parms");
|
||||||
|
|
@ -3190,13 +3199,13 @@ class JAVA : public Language {
|
||||||
classname = Swig_class_name(n);
|
classname = Swig_class_name(n);
|
||||||
{
|
{
|
||||||
Wrapper *w = NewWrapper();
|
Wrapper *w = NewWrapper();
|
||||||
Printf(w->def, "__DIRECTOR__%s::__DIRECTOR__%s(JNIEnv *jenv) : Swig::Director(jenv) {",
|
Printf(w->def, "SwigDirector_%s::SwigDirector_%s(JNIEnv *jenv) : Swig::Director(jenv) {",
|
||||||
classname, classname);
|
classname, classname);
|
||||||
Printf(w->code, "}\n");
|
Printf(w->code, "}\n");
|
||||||
Wrapper_print(w, f_directors);
|
Wrapper_print(w, f_directors);
|
||||||
DelWrapper(w);
|
DelWrapper(w);
|
||||||
}
|
}
|
||||||
Printf(f_directors_h, " __DIRECTOR__%s(JNIEnv *jenv);\n", classname);
|
Printf(f_directors_h, " SwigDirector_%s(JNIEnv *jenv);\n", classname);
|
||||||
Delete(classname);
|
Delete(classname);
|
||||||
directorPrefixArgs(n);
|
directorPrefixArgs(n);
|
||||||
return Language::classDirectorDefaultConstructor(n);
|
return Language::classDirectorDefaultConstructor(n);
|
||||||
|
|
@ -3210,7 +3219,7 @@ class JAVA : public Language {
|
||||||
int classDirectorInit(Node *n) {
|
int classDirectorInit(Node *n) {
|
||||||
String *declaration = Swig_director_declaration(n);
|
String *declaration = Swig_director_declaration(n);
|
||||||
String *classname = Getattr(n, "sym:name");
|
String *classname = Getattr(n, "sym:name");
|
||||||
String *director_classname = NewStringf("__DIRECTOR__%s", classname);
|
String *director_classname = NewStringf("SwigDirector_%s", classname);
|
||||||
|
|
||||||
Delete(none_comparison);
|
Delete(none_comparison);
|
||||||
none_comparison = NewString(""); // not used
|
none_comparison = NewString(""); // not used
|
||||||
|
|
@ -3267,7 +3276,7 @@ class JAVA : public Language {
|
||||||
|
|
||||||
int classDirectorEnd(Node *n) {
|
int classDirectorEnd(Node *n) {
|
||||||
String *classname = Getattr(n, "sym:name");
|
String *classname = Getattr(n, "sym:name");
|
||||||
String *director_classname = NewStringf("__DIRECTOR__%s", classname);
|
String *director_classname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *internal_classname;
|
String *internal_classname;
|
||||||
|
|
||||||
Wrapper *w = NewWrapper();
|
Wrapper *w = NewWrapper();
|
||||||
|
|
|
||||||
|
|
@ -337,13 +337,13 @@ public:
|
||||||
/* Swig_director_declaration()
|
/* Swig_director_declaration()
|
||||||
*
|
*
|
||||||
* Generate the full director class declaration, complete with base classes.
|
* Generate the full director class declaration, complete with base classes.
|
||||||
* e.g. "class __DIRECTOR__myclass : public myclass, public Swig::Director {"
|
* e.g. "class SwigDirector_myclass : public myclass, public Swig::Director {"
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
String *Swig_director_declaration(Node *n) {
|
String *Swig_director_declaration(Node *n) {
|
||||||
String* classname = Swig_class_name(n);
|
String* classname = Swig_class_name(n);
|
||||||
String *directorname = NewStringf("__DIRECTOR__%s", classname);
|
String *directorname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *base = Getattr(n, "classtype");
|
String *base = Getattr(n, "classtype");
|
||||||
String *declaration = Swig_class_declaration(n, directorname);
|
String *declaration = Swig_class_declaration(n, directorname);
|
||||||
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
||||||
|
|
@ -1539,7 +1539,7 @@ public:
|
||||||
/* virtual method definition */
|
/* virtual method definition */
|
||||||
l = Getattr(n, "parms");
|
l = Getattr(n, "parms");
|
||||||
String *target;
|
String *target;
|
||||||
String *pclassname = NewStringf("__DIRECTOR__%s", classname);
|
String *pclassname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
||||||
target = method_decl(decl, qualified_name, l, 0, 0);
|
target = method_decl(decl, qualified_name, l, 0, 0);
|
||||||
String *rtype = SwigType_str(type, 0);
|
String *rtype = SwigType_str(type, 0);
|
||||||
|
|
@ -1593,7 +1593,7 @@ public:
|
||||||
/* special handling for pointers to other C++ director classes.
|
/* special handling for pointers to other C++ director classes.
|
||||||
* ideally this would be left to a typemap, but there is currently no
|
* ideally this would be left to a typemap, but there is currently no
|
||||||
* way to selectively apply the dynamic_cast<> to classes that have
|
* way to selectively apply the dynamic_cast<> to classes that have
|
||||||
* directors. in other words, the type "__DIRECTOR__$1_lname" only exists
|
* directors. in other words, the type "SwigDirector_$1_lname" only exists
|
||||||
* for classes with directors. we avoid the problem here by checking
|
* for classes with directors. we avoid the problem here by checking
|
||||||
* module.wrap::directormap, but it's not clear how to get a typemap to
|
* module.wrap::directormap, but it's not clear how to get a typemap to
|
||||||
* do something similar. perhaps a new default typemap (in addition
|
* do something similar. perhaps a new default typemap (in addition
|
||||||
|
|
@ -1800,7 +1800,7 @@ public:
|
||||||
String *decl = Getattr(n, "decl");
|
String *decl = Getattr(n, "decl");
|
||||||
String *supername = Swig_class_name(parent);
|
String *supername = Swig_class_name(parent);
|
||||||
String *classname = NewString("");
|
String *classname = NewString("");
|
||||||
Printf(classname, "__DIRECTOR__%s", supername);
|
Printf(classname, "SwigDirector_%s", supername);
|
||||||
|
|
||||||
/* insert self and disown parameters */
|
/* insert self and disown parameters */
|
||||||
Parm *p, *ip;
|
Parm *p, *ip;
|
||||||
|
|
@ -1871,11 +1871,11 @@ public:
|
||||||
classname = Swig_class_name(n);
|
classname = Swig_class_name(n);
|
||||||
{
|
{
|
||||||
Wrapper *w = NewWrapper();
|
Wrapper *w = NewWrapper();
|
||||||
Printf(w->def, "__DIRECTOR__%s::__DIRECTOR__%s(CAML_VALUE self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
Printf(w->def, "SwigDirector_%s::SwigDirector_%s(CAML_VALUE self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
||||||
Wrapper_print(w, f_directors);
|
Wrapper_print(w, f_directors);
|
||||||
DelWrapper(w);
|
DelWrapper(w);
|
||||||
}
|
}
|
||||||
Printf(f_directors_h, " __DIRECTOR__%s(CAML_VALUE self, bool disown = true);\n", classname);
|
Printf(f_directors_h, " SwigDirector_%s(CAML_VALUE self, bool disown = true);\n", classname);
|
||||||
Delete(classname);
|
Delete(classname);
|
||||||
return Language::classDirectorDefaultConstructor(n);
|
return Language::classDirectorDefaultConstructor(n);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,13 +78,13 @@ String *Swig_class_name(Node *n) {
|
||||||
/* Swig_director_declaration()
|
/* Swig_director_declaration()
|
||||||
*
|
*
|
||||||
* Generate the full director class declaration, complete with base classes.
|
* Generate the full director class declaration, complete with base classes.
|
||||||
* e.g. "class __DIRECTOR__myclass : public myclass, public Swig::Director {"
|
* e.g. "class SwigDirector_myclass : public myclass, public Swig::Director {"
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
String *Swig_director_declaration(Node *n) {
|
String *Swig_director_declaration(Node *n) {
|
||||||
String* classname = Swig_class_name(n);
|
String* classname = Swig_class_name(n);
|
||||||
String *directorname = NewStringf("__DIRECTOR__%s", classname);
|
String *directorname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *base = Getattr(n, "classtype");
|
String *base = Getattr(n, "classtype");
|
||||||
String *declaration = Swig_class_declaration(n, directorname);
|
String *declaration = Swig_class_declaration(n, directorname);
|
||||||
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
||||||
|
|
@ -1303,7 +1303,7 @@ public:
|
||||||
/* virtual method definition */
|
/* virtual method definition */
|
||||||
l = Getattr(n, "parms");
|
l = Getattr(n, "parms");
|
||||||
String *target;
|
String *target;
|
||||||
String *pclassname = NewStringf("__DIRECTOR__%s", classname);
|
String *pclassname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
||||||
target = method_decl(decl, qualified_name, l, 0, 0);
|
target = method_decl(decl, qualified_name, l, 0, 0);
|
||||||
String *rtype = SwigType_str(type, 0);
|
String *rtype = SwigType_str(type, 0);
|
||||||
|
|
@ -1379,7 +1379,7 @@ public:
|
||||||
/* special handling for pointers to other C++ director classes.
|
/* special handling for pointers to other C++ director classes.
|
||||||
* ideally this would be left to a typemap, but there is currently no
|
* ideally this would be left to a typemap, but there is currently no
|
||||||
* way to selectively apply the dynamic_cast<> to classes that have
|
* way to selectively apply the dynamic_cast<> to classes that have
|
||||||
* directors. in other words, the type "__DIRECTOR__$1_lname" only exists
|
* directors. in other words, the type "SwigDirector_$1_lname" only exists
|
||||||
* for classes with directors. we avoid the problem here by checking
|
* for classes with directors. we avoid the problem here by checking
|
||||||
* module.wrap::directormap, but it's not clear how to get a typemap to
|
* module.wrap::directormap, but it's not clear how to get a typemap to
|
||||||
* do something similar. perhaps a new default typemap (in addition
|
* do something similar. perhaps a new default typemap (in addition
|
||||||
|
|
@ -1611,7 +1611,7 @@ public:
|
||||||
String *decl = Getattr(n, "decl");
|
String *decl = Getattr(n, "decl");
|
||||||
String *supername = Swig_class_name(parent);
|
String *supername = Swig_class_name(parent);
|
||||||
String *classname = NewString("");
|
String *classname = NewString("");
|
||||||
Printf(classname, "__DIRECTOR__%s", supername);
|
Printf(classname, "SwigDirector_%s", supername);
|
||||||
|
|
||||||
/* insert self and disown parameters */
|
/* insert self and disown parameters */
|
||||||
Parm *p, *ip;
|
Parm *p, *ip;
|
||||||
|
|
@ -1666,11 +1666,11 @@ public:
|
||||||
classname = Swig_class_name(n);
|
classname = Swig_class_name(n);
|
||||||
{
|
{
|
||||||
Wrapper *w = NewWrapper();
|
Wrapper *w = NewWrapper();
|
||||||
Printf(w->def, "__DIRECTOR__%s::__DIRECTOR__%s(PyObject* self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
Printf(w->def, "SwigDirector_%s::SwigDirector_%s(PyObject* self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
||||||
Wrapper_print(w, f_directors);
|
Wrapper_print(w, f_directors);
|
||||||
DelWrapper(w);
|
DelWrapper(w);
|
||||||
}
|
}
|
||||||
Printf(f_directors_h, " __DIRECTOR__%s(PyObject* self, bool disown = false);\n", classname);
|
Printf(f_directors_h, " SwigDirector_%s(PyObject* self, bool disown = false);\n", classname);
|
||||||
Delete(classname);
|
Delete(classname);
|
||||||
return Language::classDirectorDefaultConstructor(n);
|
return Language::classDirectorDefaultConstructor(n);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,13 +81,13 @@ static String *Swig_class_name(Node *n) {
|
||||||
/* Swig_director_declaration()
|
/* Swig_director_declaration()
|
||||||
*
|
*
|
||||||
* Generate the full director class declaration, complete with base classes.
|
* Generate the full director class declaration, complete with base classes.
|
||||||
* e.g. "class __DIRECTOR__myclass : public myclass, public Swig::Director {"
|
* e.g. "class SwigDirector_myclass : public myclass, public Swig::Director {"
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static String *Swig_director_declaration(Node *n) {
|
static String *Swig_director_declaration(Node *n) {
|
||||||
String* classname = Swig_class_name(n);
|
String* classname = Swig_class_name(n);
|
||||||
String *directorname = NewStringf("__DIRECTOR__%s", classname);
|
String *directorname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *base = Getattr(n, "classtype");
|
String *base = Getattr(n, "classtype");
|
||||||
String *declaration = Swig_class_declaration(n, directorname);
|
String *declaration = Swig_class_declaration(n, directorname);
|
||||||
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
Printf(declaration, " : public %s, public Swig::Director {\n", base);
|
||||||
|
|
@ -2076,7 +2076,7 @@ public:
|
||||||
String *decl = Getattr(n, "decl");
|
String *decl = Getattr(n, "decl");
|
||||||
String *supername = Swig_class_name(parent);
|
String *supername = Swig_class_name(parent);
|
||||||
String *classname = NewString("");
|
String *classname = NewString("");
|
||||||
Printf(classname, "__DIRECTOR__%s", supername);
|
Printf(classname, "SwigDirector_%s", supername);
|
||||||
|
|
||||||
/* insert self and disown parameters */
|
/* insert self and disown parameters */
|
||||||
Parm *p, *ip;
|
Parm *p, *ip;
|
||||||
|
|
@ -2126,10 +2126,10 @@ public:
|
||||||
Wrapper *w;
|
Wrapper *w;
|
||||||
classname = Swig_class_name(n);
|
classname = Swig_class_name(n);
|
||||||
w = NewWrapper();
|
w = NewWrapper();
|
||||||
Printf(w->def, "__DIRECTOR__%s::__DIRECTOR__%s(VALUE self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
Printf(w->def, "SwigDirector_%s::SwigDirector_%s(VALUE self, bool disown) : Swig::Director(self, disown) { }", classname, classname);
|
||||||
Wrapper_print(w, f_directors);
|
Wrapper_print(w, f_directors);
|
||||||
DelWrapper(w);
|
DelWrapper(w);
|
||||||
Printf(f_directors_h, " __DIRECTOR__%s(VALUE self, bool disown = true);\n", classname);
|
Printf(f_directors_h, " SwigDirector_%s(VALUE self, bool disown = true);\n", classname);
|
||||||
Delete(classname);
|
Delete(classname);
|
||||||
return Language::classDirectorDefaultConstructor(n);
|
return Language::classDirectorDefaultConstructor(n);
|
||||||
}
|
}
|
||||||
|
|
@ -2276,7 +2276,7 @@ public:
|
||||||
/* virtual method definition */
|
/* virtual method definition */
|
||||||
l = Getattr(n, "parms");
|
l = Getattr(n, "parms");
|
||||||
String *target;
|
String *target;
|
||||||
String *pclassname = NewStringf("__DIRECTOR__%s", classname);
|
String *pclassname = NewStringf("SwigDirector_%s", classname);
|
||||||
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
String *qualified_name = NewStringf("%s::%s", pclassname, name);
|
||||||
target = method_decl(decl, qualified_name, l, 0, 0);
|
target = method_decl(decl, qualified_name, l, 0, 0);
|
||||||
String *rtype = SwigType_str(type, 0);
|
String *rtype = SwigType_str(type, 0);
|
||||||
|
|
@ -2340,7 +2340,7 @@ public:
|
||||||
* Special handling for pointers to other C++ director classes.
|
* Special handling for pointers to other C++ director classes.
|
||||||
* Ideally this would be left to a typemap, but there is currently no
|
* Ideally this would be left to a typemap, but there is currently no
|
||||||
* way to selectively apply the dynamic_cast<> to classes that have
|
* way to selectively apply the dynamic_cast<> to classes that have
|
||||||
* directors. In other words, the type "__DIRECTOR__$1_lname" only exists
|
* directors. In other words, the type "SwigDirector_$1_lname" only exists
|
||||||
* for classes with directors. We avoid the problem here by checking
|
* for classes with directors. We avoid the problem here by checking
|
||||||
* module.wrap::directormap, but it's not clear how to get a typemap to
|
* module.wrap::directormap, but it's not clear how to get a typemap to
|
||||||
* do something similar. Perhaps a new default typemap (in addition
|
* do something similar. Perhaps a new default typemap (in addition
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue