Fix Java %interface family of macros
when returning by const pointer reference Closes #1987
This commit is contained in:
parent
499eb5806f
commit
429288fa1c
11 changed files with 154 additions and 3 deletions
|
|
@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
Version 4.1.0 (in progress)
|
Version 4.1.0 (in progress)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
2021-04-27: wsfulton
|
||||||
|
#1987 [Java] Fix %interface family of macros for returning by const
|
||||||
|
pointer reference.
|
||||||
|
|
||||||
2021-04-19: olly
|
2021-04-19: olly
|
||||||
Fix use of uninitialised variable in the generated code for an
|
Fix use of uninitialised variable in the generated code for an
|
||||||
empty typecheck typemap, such as the dummy one we include for
|
empty typecheck typemap, such as the dummy one we include for
|
||||||
|
|
|
||||||
|
|
@ -216,6 +216,7 @@ public class multiple_inheritance_abstract_runme {
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
||||||
|
|
||||||
// Return pointers
|
// Return pointers
|
||||||
check(multiple_inheritance_abstract.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
check(multiple_inheritance_abstract.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
check(multiple_inheritance_abstract.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
||||||
|
|
@ -234,6 +235,15 @@ public class multiple_inheritance_abstract_runme {
|
||||||
check(multiple_inheritance_abstract.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_abstract.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_abstract.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_abstract.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_abstract.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_abstract.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -217,6 +217,7 @@ public class multiple_inheritance_nspace_runme {
|
||||||
check(multiple_inheritance_nspace.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
check(multiple_inheritance_nspace.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
||||||
check(multiple_inheritance_nspace.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
check(multiple_inheritance_nspace.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
||||||
check(multiple_inheritance_nspace.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
check(multiple_inheritance_nspace.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
||||||
|
|
||||||
// Return pointers
|
// Return pointers
|
||||||
check(multiple_inheritance_nspace.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
check(multiple_inheritance_nspace.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_nspace.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
check(multiple_inheritance_nspace.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
||||||
|
|
@ -235,6 +236,15 @@ public class multiple_inheritance_nspace_runme {
|
||||||
check(multiple_inheritance_nspace.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_nspace.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_nspace.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_nspace.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_nspace.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_nspace.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_nspace.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_nspace.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -301,6 +301,15 @@ public class multiple_inheritance_shared_ptr_runme {
|
||||||
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -224,6 +224,7 @@ public class multiple_inheritance_abstract_runme {
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom1(b1)!=103+104, "InputCPtrRefBottom1() failed");
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom2(b2)!=206+205, "InputCPtrRefBottom2() failed");
|
||||||
check(multiple_inheritance_abstract.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
check(multiple_inheritance_abstract.InputCPtrRefBottom3(b3)!=307+308+309, "InputCPtrRefBottom3() failed");
|
||||||
|
|
||||||
// Return pointers
|
// Return pointers
|
||||||
check(multiple_inheritance_abstract.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
check(multiple_inheritance_abstract.MakePtrDerived1_CBase1().cbase1y()!=3, "MakePtrDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
check(multiple_inheritance_abstract.MakePtrDerived1_CBase2().cbase2()!=4, "MakePtrDerived1_CBase2 failed");
|
||||||
|
|
@ -242,6 +243,15 @@ public class multiple_inheritance_abstract_runme {
|
||||||
check(multiple_inheritance_abstract.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_abstract.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_abstract.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_abstract.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_abstract.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_abstract.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_abstract.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_abstract.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -244,6 +244,15 @@ public class multiple_inheritance_nspace_runme {
|
||||||
check(multiple_inheritance_nspace.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_nspace.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_nspace.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_nspace.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_nspace.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_nspace.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_nspace.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_nspace.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_nspace.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -309,6 +309,15 @@ public class multiple_inheritance_shared_ptr_runme {
|
||||||
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase1().cbase1y()!=7, "MakeRefDerived3_CBase1 failed");
|
||||||
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
check(multiple_inheritance_shared_ptr.MakeRefDerived3_CBase2().cbase2()!=8, "MakeRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived1_CBase1().cbase1y()!=3, "MakeConstPtrRefDerived1_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived1_CBase2().cbase2()!=4, "MakeConstPtrRefDerived1_CBase2 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived2_CBase1().cbase1y()!=6, "MakeConstPtrRefDerived2_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived2_ABase1().abase1()!=5, "MakeConstPtrRefDerived2_ABase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_ABase1().abase1()!=9, "MakeConstPtrRefDerived3_ABase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_CBase1().cbase1y()!=7, "MakeConstPtrRefDerived3_CBase1 failed");
|
||||||
|
check(multiple_inheritance_shared_ptr.MakeConstPtrRefDerived3_CBase2().cbase2()!=8, "MakeConstPtrRefDerived3_CBase2 failed");
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase1().cbase1y()!=1, "MakeValDerived1_CBase1 failed");
|
||||||
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
check(multiple_inheritance_shared_ptr.MakeValDerived1_CBase2().cbase2()!=2, "MakeValDerived1_CBase2 failed");
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ namespace Space {
|
||||||
struct CBase1 {
|
struct CBase1 {
|
||||||
virtual void cbase1x() {
|
virtual void cbase1x() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
virtual int cbase1y() {
|
virtual int cbase1y() {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -306,6 +306,36 @@ namespace Space {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived1_CBase1() {
|
||||||
|
static CBase1 *d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived1_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived2_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived2_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived3_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived3_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived3_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
CBase1 MakeValDerived1_CBase1() {
|
CBase1 MakeValDerived1_CBase1() {
|
||||||
return Derived1();
|
return Derived1();
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ namespace Space {
|
||||||
struct CBase1 {
|
struct CBase1 {
|
||||||
virtual void cbase1x() {
|
virtual void cbase1x() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
virtual int cbase1y() {
|
virtual int cbase1y() {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -315,6 +315,36 @@ namespace Space {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived1_CBase1() {
|
||||||
|
static CBase1 *d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived1_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived2_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived2_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived3_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived3_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived3_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
CBase1 MakeValDerived1_CBase1() {
|
CBase1 MakeValDerived1_CBase1() {
|
||||||
return Derived1();
|
return Derived1();
|
||||||
|
|
|
||||||
|
|
@ -424,6 +424,36 @@ namespace Space {
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return const pointer references
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived1_CBase1() {
|
||||||
|
static CBase1 *d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived1_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived1();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived2_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived2_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived2();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
ABase1 *const&MakeConstPtrRefDerived3_ABase1() {
|
||||||
|
static ABase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase1 *const&MakeConstPtrRefDerived3_CBase1() {
|
||||||
|
static CBase1 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
CBase2 *const&MakeConstPtrRefDerived3_CBase2() {
|
||||||
|
static CBase2 *const& d = new Derived3();
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
// Return by value (sliced objects)
|
// Return by value (sliced objects)
|
||||||
CBase1 MakeValDerived1_CBase1() {
|
CBase1 MakeValDerived1_CBase1() {
|
||||||
return Derived1();
|
return Derived1();
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
}
|
}
|
||||||
%typemap(javaout) CTYPE *const& {
|
%typemap(javaout) CTYPE *const& {
|
||||||
long cPtr = $jnicall;
|
long cPtr = $jnicall;
|
||||||
return (cPtr == 0) ? null : ($javainterfacename)new $javaclassname(cPtr, $owner);
|
return (cPtr == 0) ? null : ($*javainterfacename)new $*javaclassname(cPtr, $owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(javadirectorin) CTYPE "($&javainterfacename)new $&javaclassname($jniinput, true)"
|
%typemap(javadirectorin) CTYPE "($&javainterfacename)new $&javaclassname($jniinput, true)"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue