diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2011-11-25 20:56:56 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2011-11-25 20:56:56 +0000 |
commit | 6a74028e65821de5cf1650bb906d8deaf177a4a5 (patch) | |
tree | a641cde6e6a7cc6666ab7845b5e73ce96418762b /Lib/java/java.swg | |
parent | 959fdf20538cdec8e8ed7f5890512d323f9865a4 (diff) | |
download | swig-6a74028e65821de5cf1650bb906d8deaf177a4a5.tar.gz |
Fix inconsistencies in Java and C# getCPtr() and pointer constructor visibility - change to protected/internal from public. Add SWIG_JAVABODY_PROXY, SWIG_JAVABODY_TYPEWRAPPER and SWIG_CSBODY_PROXY, SWIG_CSBODY_TYPEWRAPPER for users to easily change when using multiple modules.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12843 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Lib/java/java.swg')
-rw-r--r-- | Lib/java/java.swg | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/Lib/java/java.swg b/Lib/java/java.swg index 159aafb17..fbea6a07c 100644 --- a/Lib/java/java.swg +++ b/Lib/java/java.swg @@ -1116,9 +1116,11 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { /* javabody typemaps */ -%define SWIG_JAVABODY_METHODS(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPENAME...) +%define SWIG_JAVABODY_METHODS(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...) SWIG_JAVABODY_PROXY(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE) %enddef // legacy name + +%define SWIG_JAVABODY_PROXY(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...) // Base proxy classes -%typemap(javabody) TYPENAME %{ +%typemap(javabody) TYPE %{ private long swigCPtr; protected boolean swigCMemOwn; @@ -1133,7 +1135,7 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { %} // Derived proxy classes -%typemap(javabody_derived) TYPENAME %{ +%typemap(javabody_derived) TYPE %{ private long swigCPtr; PTRCTOR_VISIBILITY $javaclassname(long cPtr, boolean cMemoryOwn) { @@ -1147,43 +1149,45 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { %} %enddef -/* Set the default for SWIGTYPE: pointer constructor is protected, - getCPtr is protected. Season to your own taste! */ - -SWIG_JAVABODY_METHODS(public, public, SWIGTYPE) - +%define SWIG_JAVABODY_TYPEWRAPPER(PTRCTOR_VISIBILITY, DEFAULTCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...) // Typewrapper classes -%typemap(javabody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] %{ +%typemap(javabody) TYPE *, TYPE &, TYPE [] %{ private long swigCPtr; - protected $javaclassname(long cPtr, boolean futureUse) { + PTRCTOR_VISIBILITY $javaclassname(long cPtr, boolean futureUse) { swigCPtr = cPtr; } - protected $javaclassname() { + DEFAULTCTOR_VISIBILITY $javaclassname() { swigCPtr = 0; } - protected static long getCPtr($javaclassname obj) { + CPTR_VISIBILITY static long getCPtr($javaclassname obj) { return (obj == null) ? 0 : obj.swigCPtr; } %} -%typemap(javabody) SWIGTYPE (CLASS::*) %{ +%typemap(javabody) TYPE (CLASS::*) %{ private String swigCMemberPtr; - protected $javaclassname(String cMemberPtr, boolean futureUse) { + PTRCTOR_VISIBILITY $javaclassname(String cMemberPtr, boolean futureUse) { swigCMemberPtr = cMemberPtr; } - protected $javaclassname() { + DEFAULTCTOR_VISIBILITY $javaclassname() { swigCMemberPtr = null; } - protected static String getCMemberPtr($javaclassname obj) { + CPTR_VISIBILITY static String getCMemberPtr($javaclassname obj) { return obj.swigCMemberPtr; } %} +%enddef + +/* Set the default javabody typemaps to use protected visibility. + Use the macros to change to public if using multiple modules. */ +SWIG_JAVABODY_PROXY(public, public, SWIGTYPE) +SWIG_JAVABODY_TYPEWRAPPER(protected, protected, protected, SWIGTYPE) %typemap(javafinalize) SWIGTYPE %{ protected void finalize() { |