Commit graph

4,539 commits

Author SHA1 Message Date
William S Fulton
26e14c4f18 Fix scope lookup for template parameters containing unary scope operators
Fixes cases like:

namespace Alloc {
  template<typename T> struct Rebind {
    typedef int Integer;
  };
}
%template(RebindBucket) Alloc::Rebind< Bucket >;
OR
%template(RebindBucket) Alloc::Rebind< ::Bucket >;

Alloc::Rebind< Bucket >::Integer Bucket1() { return 1; }
Alloc::Rebind< ::Bucket >::Integer Bucket2() { return 2; }
Alloc::Rebind<::template TemplateBucket<double>>::Integer Bucket3() { return 3; };
2017-08-16 00:24:24 +01:00
William S Fulton
aa2932f409 Typemap change for templates
For templates only, the template parameters are fully resolved when
handling typemaps. Without this, it is too hard to have decent rules
to apply typemaps when parameter types are typedef'd and template
parameters have default values.

Fixes %clear for typedefs in templates, eg:

  %typemap("in") XXX<int>::Long "..."
  template typename<T> struct XXX {
    typedef long Long;
  };
  %clear XXX<int>::Long;

as the typemap was previously incorrectly stored as a typemap for long
instead of XXX<int>::Long.
2017-08-16 00:24:06 +01:00
William S Fulton
f5cb0420f3 Merge branch 'fflexo-javalist'
* fflexo-javalist:
  Java std::vector minor improvement
  Fix Java container tests for change in vector constructor declaration
  Add in missing Java std::list listIterator index range checking
  Minor correction in C# std::list doNextIndex
  Add missing typedefs to Java std::vector
  Consistent destructor declarations
  Remove Java std::list::max_size
  Java std::list std::vector - test addAll and subList
  Handle length_error exceptions in Java std::vector::reserve
  Remove Java std::list::assign
  Additional add/remove methods added to Java std::list wrappers
  More efficient add implementation for Java std::list
  Java std::vector std::list: add missing exception handling
  Java std::vector std::list enhancements
  Modify std::list declarations to match the C++ standard
  Fix removing elements from std::list Java wrapper
  Improve Java std::list std::vector runtime tests and wrap std::list::clear
  Wrap std::list::empty as isEmpty in Java
  javabase typemap improvement for std::list
  Java std::list - fully qualifiy Java class name to avoid potential name ambiguity
  cosmetics
  Remove redundant code
  Java std::list rework to be consistent with std::vector wrappers
  li_std_list testcase not working for most languages
  re-enabled li_std_list test
  Switched from autobox to jboxtype per #842
  Document autobox.i
  Made the conversion from long->int for size_type mapping onto Java interfaces cleaner.
  Be consistent in semantics of %extend on std::list::iterator
  Comment on consideration of making iterator non-static.
  Java style fix: iterator->Iterator
  Moving iterator functionality into nested Java class now.
  Removed typedef from li_std_list test as it's not expected to work properly in templated code
  Added a best case workaround for std::list::size_type vs jint problem. There's a bit of commentry added around it too for clarity.
  Drop non-const reference from autobox typemap macro to be consistent.
  just use a forward declaration for C++ iterator types to fix enum errors
  Added enum to li_std_list tests
  Added li_std_list to the Java test-suit makefile
  added more comments in a few places
  Base _runme.java for li_std_list off li_std_vector_runme.java
  Expose more types from li_std_list.i
  Don't expose sort() to avoid adding dependencies on all std::list users
  Target each method specificly for setting modifiers
  Don't expose remove() method from std::list to avoid confusing it with Java's remove() in List
  - added std_list.i implemenatation that extends Java's AbstractSequentialList base class - added autobox.i that provides supporting typemaps for generics in containers
2017-06-29 20:20:40 +01:00
William S Fulton
0b390a5473 Fix Java container tests for change in vector constructor declaration 2017-06-29 19:59:19 +01:00
William S Fulton
44cd658a53 Add in missing Java std::list listIterator index range checking 2017-06-29 19:32:34 +01:00
William S Fulton
90d2ba884c Java std::list std::vector - test addAll and subList 2017-06-26 13:42:19 +01:00
Nihal
74fa7d00e2 Fix indentation in PHP7 and PHP5 variables example 2017-06-26 15:36:55 +12:00
William S Fulton
ecebbdd0df Additional add/remove methods added to Java std::list wrappers
Add functions similar to java.util.LinkedList<E>:
  addFirst
  addLast
  removeFirst
  removeLast
2017-06-25 00:10:06 +01:00
William S Fulton
c686045f55 More efficient add implementation for Java std::list
The default implementation in AbstractSequentialList<E>
calls add(size(), e) and size() might be expensive.
2017-06-24 23:33:31 +01:00
William S Fulton
ea55c5bba0 Java std::vector std::list enhancements
- Add missing vector copy constructor
- Add constructor to initialize the containers. Note that Java's
  equivalent constructor for ArrayList just sets the capacity, whereas
  the wrappers behave like the C++ constructor and set the size. I've
  done this mainly because there has been a vector(size_type) constructor
  in the Java wrappers for many years, so best to keep this unchanged.
2017-06-24 14:30:03 +01:00
William S Fulton
2d99027935 Fix removing elements from std::list Java wrapper
Add missing remove method on Java side (without it elements aren't
removed).
2017-06-23 16:17:00 +01:00
William S Fulton
428b332e68 Improve Java std::list std::vector runtime tests and wrap std::list::clear 2017-06-23 15:42:59 +01:00
William S Fulton
990c597365 Wrap std::list::empty as isEmpty in Java 2017-06-23 15:26:53 +01:00
Olly Betts
ad7dcb2c87 Merge branch 'm7thon-python23-octal-arguments' 2017-06-23 14:57:05 +12:00
Michael Thon
80ffb169c1 [Python] fix and improve default argument handling
1. Fix negative octals. Currently not handled correctly by `-py3`
   (unusual case, but incorrect).
2. Fix arguments of type "octal + something" (e.g. `0640 | 04`).
   Currently drops everything after the first octal. Nasty!
3. Fix bool arguments "0 + something" (e.g. `0 | 1`) are always
   "False" (unusual case, but incorrect).
4. Remove special handling of "TRUE" and "FALSE" from
   `convertValue` since there's no reason these have to match
   "true" and "false".
5. Remove the Python 2 vs. Python 3 distinction based on the
   `-py3` flag. Now the same python code is produced for default
   arguments for Python 2 and Python 3. For this, octal default
   arguments, e.g. 0644, are now wrapped as `int('644', 8)`. This
   is required, as Python 2 and Python 3 have incompatible syntax
   for octal literals.

Fixes #707
2017-06-23 13:38:49 +12:00
William S Fulton
fa416e4d40 li_std_list testcase not working for most languages 2017-06-21 15:51:52 +01:00
William S Fulton
e9e9531dc3 Merge branch 'tamuratak-fix_ruby_wstring'
* tamuratak-fix_ruby_wstring:
  [ruby] use %fragment to clarify the dependency of code.
  [ruby] should initialize static variables inside %init{}, in which it will not be        excuted concurrently by multiple threads.
  [ruby] * use static variable to avoid creating stirngs every time.        * fix possible overflow.
  [ruby] add std::wstring tests for string including a null terminator.
  [ruby] * rewrite SWIG_AsWCharPtrAndSize and SWIG_FromWCharPtrAndSize        * use UTF-32LE and UTF-16LE to avoid BOM        * add tests
  [ruby] use WCHAR_MAX to determine the encoding of std::wstring.
  [ruby] add a few tests for std::wstring
  [ruby] fix support for std::wstring.
2017-06-20 20:13:01 +01:00
William S Fulton
ff53789dc9 Suppress warning in testcase 2017-06-20 07:00:22 +01:00
William S Fulton
1d1d0de2d0 Fix python_richcompare test for Python 3.6 2017-06-20 00:02:00 +01:00
William S Fulton
e0c0017839 Remove failing runtime tests for now using Python 2 and -builtin 2017-06-19 20:33:32 +01:00
William S Fulton
687cf9c9c1 Add missing %python:maybecall to operator overloads.
This ensures NotImplemented is returned on error so that the Python
interpreter will handle the operators correctly instead of throwing an
exception. NotImplemented was not being returned for non-builtin wrappers
when the operator overload did not have a function overload.

See PEP 207 and https://docs.python.org/3/library/constants.html#NotImplemented

Mentioned in SF patch #303 and SF bug #1208.
2017-06-19 19:25:27 +01:00
Fabrice Benhamouda
5386bf2a24 fix swig/swig#600 and fix swig/swig#955 2017-06-17 11:38:07 +12:00
William S Fulton
95e8643d70 Rename func to funk in tests to avoid Go keyword problems 2017-06-16 19:24:48 +01:00
William S Fulton
67190cbb2e Add import_fragment test back in to Go test-suite 2017-06-16 19:24:22 +01:00
William S Fulton
6a7cd97fe9 Fix R function pointer wrappers containing lvalue and rvalue reference parameters 2017-06-16 07:41:05 +01:00
William S Fulton
5b0611dbcd Fix compiler flags used during R testing
CFLAGS and CXXFLAGS were not being passed properly when compiling
wrappers.
2017-06-13 19:36:35 +01:00
Olly Betts
8855ef2b48 [Perl] Fix testsuite to work without . in @INC
"." was removed from @INC in Perl 5.26 for security reasons, and has
also been removed from older versions in some distros.

Fixes https://github.com/swig/swig/issues/997 reported by lfam.
2017-06-13 17:32:37 +12:00
William S Fulton
5d5fd5b122 Fix scilab fragment dependency problem in STL headers
import_stl test now working again
2017-06-06 19:56:59 +01:00
William S Fulton
b08d6ddbad Temporarily disable failing tests 2017-06-06 07:14:18 +01:00
William S Fulton
00b0c5b8ea Testcase fix for name clash in tcl headers 2017-06-06 06:59:23 +01:00
Alan Woodland
0695cb72cb re-enabled li_std_list test 2017-06-05 22:09:41 +01:00
Alan Woodland
4db1300622 Merge branch 'master' into javalist 2017-06-05 21:55:12 +01:00
William S Fulton
bc7c80b862 More Java vector runtime tests 2017-06-05 19:33:45 +01:00
William S Fulton
65abd9558d Merge branch 'java-vector-test'
* java-vector-test:
  Java std_vector runtime test

Conflicts:
	Examples/test-suite/java/li_std_vector_runme.java
2017-06-05 19:23:31 +01:00
William S Fulton
30b7424f8e Java std_vector runtime test
From Volker Diels-Grabsch in SF patch https://sourceforge.net/p/swig/patches/278/
2017-06-05 19:15:32 +01:00
William S Fulton
be63f73e33 Fix c++ compiler warnings in c++11 testcases 2017-06-03 18:37:05 +01:00
William S Fulton
57a89f987d Fix %import and %fragment forced inclusion to not generate code. 2017-06-03 18:37:05 +01:00
William S Fulton
338acfabeb Merge branch 'vadz-java-vector'
* vadz-java-vector:
  Fix potential STL std::vector wrappers <: digraphs problems.
  Add runtime checks for vector size in Java
  Make std::vector<> wrappers conform to List interface in Java
  Add helper macro to avoid duplication in Java vector typemaps

Conflicts:
	CHANGES.current
2017-05-26 19:15:12 +01:00
William S Fulton
a4d01cddeb Missing smart pointer handling in Java director extra methods
- Add CHANGES file entry
- Add testcase
2017-05-25 20:35:18 +01:00
William S Fulton
241460eddc director_smartptr runtime tests enhancement
Add same changes from previous commit to additional languages
2017-05-23 21:36:24 +01:00
William S Fulton
4bf607589f Fix Java shared_ptr and directors for derived classes java compilation error.
For shared_ptr proxy proxy classes, add a protected method swigSetCMemOwn for modifying
the swigCMemOwn and swigCMemOwnDerived member variables which are used by various other
methods for controlling memory ownership.

Closes #230
Closes #759
2017-05-23 21:36:08 +01:00
William S Fulton
81ba06e59e Fix Python negative unsigned default values
Closes #993
2017-05-21 00:02:08 +01:00
William S Fulton
2ec156fb7f Merge branch 'vadz-csharp-complex'
* vadz-csharp-complex:
  Add header to std_complex.i
  Fix linkage problems in C# std::complex wrappers
  C# std::complex wrappers marshalling by value
  C# std::complex wrappers SwigValueWrapper fix
  Use %naturalvar for C# std::complex wrappers
  Allow avoiding generation of unwanted std::complex<T> typemaps
  Also apply csvar{in,out} typemaps to std::complex references
  Add std_complex.i for C# too
  Extend C# complex support to member variables of this type
  Add support for std::complex<> to C#
  Use new unified Mono mcs compiler if available under Unix
2017-05-20 15:21:48 +01:00
Olly Betts
9a0180c56c Merge pull request #970 from nihal95/master
Adds pragma version directive for php5 and php7.  Fixes #360.
2017-05-16 17:47:35 +12:00
William S Fulton
6a3910690b director_exception testcase warning fixes
Fixes: 'function assumed not to throw an exception but does'
2017-05-14 01:07:14 +01:00
William S Fulton
a271043555 Fix warnings in Java OUTPUT and INOUT typemaps 2017-05-14 00:39:08 +01:00
William S Fulton
ace88b45a0 Expand c++11 and c++14 Travis testing
Add testing for Go, Perl, PHP, Tcl
2017-05-13 18:15:55 +01:00
William S Fulton
f6d10278f8 Merge branch 'yag00-master'
* yag00-master:
  Add raise methods for throwing c++ exceptions in C#, Java, D
  php5: propagate c++11 noexcept to director classes
  Revert "java : noexcept method can't raise Swig::DirectorException"
  Revert "csharp : noexcept method can't raise Swig::DirectorPureVirtualException"
  csharp : noexcept method can't raise Swig::DirectorPureVirtualException
  java : noexcept method can't raise Swig::DirectorException
  #526 : propagate c++11 noexcept to director classes
  #526 : propagate c++11 noexcept to director classes test case
2017-05-13 17:05:25 +01:00
William S Fulton
e05412088f director_thread testcase fix 2017-05-12 19:41:31 +01:00
William S Fulton
be5d046f7d director_thread testcase improvements
- Add missing threading constructs to director_thread test for Windows
- pthreads tidy up
2017-05-12 18:57:37 +01:00