Fix for proxy class typemaps so that they use the C++ type and not the proxy class name.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4786 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
1a9287ec14
commit
be92467534
2 changed files with 24 additions and 21 deletions
|
|
@ -1017,6 +1017,7 @@ class CSHARP : public Language {
|
||||||
String *c_baseclass = NULL;
|
String *c_baseclass = NULL;
|
||||||
String *baseclass = NULL;
|
String *baseclass = NULL;
|
||||||
String *c_baseclassname = NULL;
|
String *c_baseclassname = NULL;
|
||||||
|
String *classDeclarationName = Getattr(n,"classDeclaration:name");
|
||||||
|
|
||||||
/* Deal with inheritance */
|
/* Deal with inheritance */
|
||||||
List *baselist = Getattr(n,"bases");
|
List *baselist = Getattr(n,"bases");
|
||||||
|
|
@ -1030,7 +1031,7 @@ class CSHARP : public Language {
|
||||||
base = Nextitem(baselist);
|
base = Nextitem(baselist);
|
||||||
if (base) {
|
if (base) {
|
||||||
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
||||||
"Warning for %s: Base %s ignored. Multiple inheritance is not supported in C#.\n", shadow_classname, Getattr(base,"name"));
|
"Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in C#.\n", classDeclarationName, Getattr(base,"name"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1039,20 +1040,20 @@ class CSHARP : public Language {
|
||||||
baseclass = NewString("");
|
baseclass = NewString("");
|
||||||
|
|
||||||
// Inheritance from pure Java classes
|
// Inheritance from pure Java classes
|
||||||
const String *pure_java_baseclass = javaTypemapLookup("javabase", shadow_classname, WARN_NONE);
|
const String *pure_java_baseclass = javaTypemapLookup("javabase", classDeclarationName, WARN_NONE);
|
||||||
if (Len(pure_java_baseclass) > 0 && Len(baseclass) > 0) {
|
if (Len(pure_java_baseclass) > 0 && Len(baseclass) > 0) {
|
||||||
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
||||||
"Warning for %s: Base %s ignored. Multiple inheritance is not supported in C#.\n", shadow_classname, pure_java_baseclass);
|
"Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in C#.\n", classDeclarationName, pure_java_baseclass);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pure Java interfaces
|
// Pure Java interfaces
|
||||||
const String *pure_java_interfaces = javaTypemapLookup("javainterfaces", shadow_classname, WARN_NONE);
|
const String *pure_java_interfaces = javaTypemapLookup("javainterfaces", classDeclarationName, WARN_NONE);
|
||||||
|
|
||||||
// Start writing the shadow class
|
// Start writing the shadow class
|
||||||
Printv(shadow_classdef,
|
Printv(shadow_classdef,
|
||||||
javaTypemapLookup("javaimports", shadow_classname, WARN_NONE), // Import statements
|
javaTypemapLookup("javaimports", classDeclarationName, WARN_NONE), // Import statements
|
||||||
"\n",
|
"\n",
|
||||||
javaTypemapLookup("javaclassmodifiers", shadow_classname, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers
|
javaTypemapLookup("javaclassmodifiers", classDeclarationName, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers
|
||||||
" class $javaclassname : ", // Class name and bases
|
" class $javaclassname : ", // Class name and bases
|
||||||
baseclass,
|
baseclass,
|
||||||
pure_java_baseclass,
|
pure_java_baseclass,
|
||||||
|
|
@ -1070,7 +1071,7 @@ class CSHARP : public Language {
|
||||||
" protected bool swigCMemOwn;\n",
|
" protected bool swigCMemOwn;\n",
|
||||||
"\n",
|
"\n",
|
||||||
" ",
|
" ",
|
||||||
javaTypemapLookup("javaptrconstructormodifiers", shadow_classname, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers
|
javaTypemapLookup("javaptrconstructormodifiers", classDeclarationName, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers
|
||||||
" $javaclassname(IntPtr cPtr, bool cMemoryOwn) ", // Constructor used for wrapping pointers
|
" $javaclassname(IntPtr cPtr, bool cMemoryOwn) ", // Constructor used for wrapping pointers
|
||||||
derived ?
|
derived ?
|
||||||
": base($jniclassname.$javaclassnameTo$baseclass(cPtr), cMemoryOwn) {\n" :
|
": base($jniclassname.$javaclassnameTo$baseclass(cPtr), cMemoryOwn) {\n" :
|
||||||
|
|
@ -1088,8 +1089,9 @@ class CSHARP : public Language {
|
||||||
}
|
}
|
||||||
|
|
||||||
Printv(shadow_classdef,
|
Printv(shadow_classdef,
|
||||||
derived?javaTypemapLookup("cildisposeoverride", shadow_classname, WARN_NONE):
|
derived ?
|
||||||
javaTypemapLookup("cildispose", shadow_classname, WARN_NONE), // finalize method
|
javaTypemapLookup("cildisposeoverride", classDeclarationName, WARN_NONE) :
|
||||||
|
javaTypemapLookup("cildispose", classDeclarationName, WARN_NONE), // finalize method
|
||||||
"\n",
|
"\n",
|
||||||
*Char(destructor_call) ? " protected " : " private ",
|
*Char(destructor_call) ? " protected " : " private ",
|
||||||
derived ? "override" : "virtual",
|
derived ? "override" : "virtual",
|
||||||
|
|
@ -1104,8 +1106,8 @@ class CSHARP : public Language {
|
||||||
" }\n",
|
" }\n",
|
||||||
" swigCPtr = IntPtr.Zero;\n",
|
" swigCPtr = IntPtr.Zero;\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
javaTypemapLookup("javagetcptr", shadow_classname, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method
|
javaTypemapLookup("javagetcptr", classDeclarationName, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method
|
||||||
javaTypemapLookup("javacode", shadow_classname, WARN_NONE), // extra Java code
|
javaTypemapLookup("javacode", classDeclarationName, WARN_NONE), // extra Java code
|
||||||
"\n",
|
"\n",
|
||||||
NIL);
|
NIL);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1048,6 +1048,7 @@ class JAVA : public Language {
|
||||||
String *c_baseclass = NULL;
|
String *c_baseclass = NULL;
|
||||||
String *baseclass = NULL;
|
String *baseclass = NULL;
|
||||||
String *c_baseclassname = NULL;
|
String *c_baseclassname = NULL;
|
||||||
|
String *classDeclarationName = Getattr(n,"classDeclaration:name");
|
||||||
|
|
||||||
/* Deal with inheritance */
|
/* Deal with inheritance */
|
||||||
List *baselist = Getattr(n,"bases");
|
List *baselist = Getattr(n,"bases");
|
||||||
|
|
@ -1061,7 +1062,7 @@ class JAVA : public Language {
|
||||||
base = Nextitem(baselist);
|
base = Nextitem(baselist);
|
||||||
if (base) {
|
if (base) {
|
||||||
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
||||||
"Warning for %s: Base %s ignored. Multiple inheritance is not supported in Java.\n", shadow_classname, Getattr(base,"name"));
|
"Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java.\n", classDeclarationName, Getattr(base,"name"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1070,20 +1071,20 @@ class JAVA : public Language {
|
||||||
baseclass = NewString("");
|
baseclass = NewString("");
|
||||||
|
|
||||||
// Inheritance from pure Java classes
|
// Inheritance from pure Java classes
|
||||||
const String *pure_java_baseclass = javaTypemapLookup("javabase", shadow_classname, WARN_NONE);
|
const String *pure_java_baseclass = javaTypemapLookup("javabase", classDeclarationName, WARN_NONE);
|
||||||
if (Len(pure_java_baseclass) > 0 && Len(baseclass) > 0) {
|
if (Len(pure_java_baseclass) > 0 && Len(baseclass) > 0) {
|
||||||
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number,
|
||||||
"Warning for %s: Base %s ignored. Multiple inheritance is not supported in Java.\n", shadow_classname, pure_java_baseclass);
|
"Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java.\n", classDeclarationName, pure_java_baseclass);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pure Java interfaces
|
// Pure Java interfaces
|
||||||
const String *pure_java_interfaces = javaTypemapLookup("javainterfaces", shadow_classname, WARN_NONE);
|
const String *pure_java_interfaces = javaTypemapLookup("javainterfaces", classDeclarationName, WARN_NONE);
|
||||||
|
|
||||||
// Start writing the shadow class
|
// Start writing the shadow class
|
||||||
Printv(shadow_classdef,
|
Printv(shadow_classdef,
|
||||||
javaTypemapLookup("javaimports", shadow_classname, WARN_NONE), // Import statements
|
javaTypemapLookup("javaimports", classDeclarationName, WARN_NONE), // Import statements
|
||||||
"\n",
|
"\n",
|
||||||
javaTypemapLookup("javaclassmodifiers", shadow_classname, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers
|
javaTypemapLookup("javaclassmodifiers", classDeclarationName, WARN_JAVA_TYPEMAP_CLASSMOD_UNDEF), // Class modifiers
|
||||||
" class $javaclassname", // Class name and bases
|
" class $javaclassname", // Class name and bases
|
||||||
(derived || *Char(pure_java_baseclass)) ?
|
(derived || *Char(pure_java_baseclass)) ?
|
||||||
" extends " :
|
" extends " :
|
||||||
|
|
@ -1101,7 +1102,7 @@ class JAVA : public Language {
|
||||||
" protected boolean swigCMemOwn;\n",
|
" protected boolean swigCMemOwn;\n",
|
||||||
"\n",
|
"\n",
|
||||||
" ",
|
" ",
|
||||||
javaTypemapLookup("javaptrconstructormodifiers", shadow_classname, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers
|
javaTypemapLookup("javaptrconstructormodifiers", classDeclarationName, WARN_JAVA_TYPEMAP_PTRCONSTMOD_UNDEF), // pointer constructor modifiers
|
||||||
" $javaclassname(long cPtr, boolean cMemoryOwn) {\n", // Constructor used for wrapping pointers
|
" $javaclassname(long cPtr, boolean cMemoryOwn) {\n", // Constructor used for wrapping pointers
|
||||||
derived ?
|
derived ?
|
||||||
" super($jniclassname.SWIG$javaclassnameTo$baseclass(cPtr), cMemoryOwn);\n" :
|
" super($jniclassname.SWIG$javaclassnameTo$baseclass(cPtr), cMemoryOwn);\n" :
|
||||||
|
|
@ -1120,7 +1121,7 @@ class JAVA : public Language {
|
||||||
}
|
}
|
||||||
|
|
||||||
Printv(shadow_classdef,
|
Printv(shadow_classdef,
|
||||||
javaTypemapLookup("javafinalize", shadow_classname, WARN_NONE), // finalize method
|
javaTypemapLookup("javafinalize", classDeclarationName, WARN_NONE), // finalize method
|
||||||
"\n",
|
"\n",
|
||||||
*Char(destructor_call) ?
|
*Char(destructor_call) ?
|
||||||
" public void delete() {\n" :
|
" public void delete() {\n" :
|
||||||
|
|
@ -1135,8 +1136,8 @@ class JAVA : public Language {
|
||||||
" }\n",
|
" }\n",
|
||||||
" swigCPtr = 0;\n",
|
" swigCPtr = 0;\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
javaTypemapLookup("javagetcptr", shadow_classname, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method
|
javaTypemapLookup("javagetcptr", classDeclarationName, WARN_JAVA_TYPEMAP_GETCPTR_UNDEF), // getCPtr method
|
||||||
javaTypemapLookup("javacode", shadow_classname, WARN_NONE), // extra Java code
|
javaTypemapLookup("javacode", classDeclarationName, WARN_NONE), // extra Java code
|
||||||
"\n",
|
"\n",
|
||||||
NIL);
|
NIL);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue