Commit graph

21,257 commits

Author SHA1 Message Date
Richard Beare
4081521210 DOC: Extended documentation on enumeration support in R
Touched on delayedAssign, use of character strings,
function attributes, hidden environments and
the lack of support for anonymous enumerations.
2019-03-08 21:56:36 +11:00
Richard Beare
4490d0ec2c FIX: Corrected path to output from R tests
Makefile was attempting to cat output files from the
script source directory instead of the build directory.
2019-03-08 21:56:36 +11:00
Richard Beare
80cd2f5cd7 Reformat comments in R module 2019-03-08 21:56:36 +11:00
Richard Beare
62594c611a ENH: Run test for enum_thorough in R
This test exercises many complex cases for enumerations in R.

References to enums currently fail and will be addressed in
the next patch.

Anonymous enums are not supported.

There are some strange corner cases that could be seen as
doing strange things in R. enums are allowed to have the
same underlying integer representation on the C side. This
means that the R structure ends up with two names for the
same integer, which in turn means that the reverse lookup
isn't unique. I don't think this matters. I'll add some
of these cases to the documentation.
2019-03-08 21:56:36 +11:00
Richard Beare
b5af07fd95 Code style changes post review 2019-03-08 21:56:36 +11:00
Richard Beare
06de704938 ENH: R Module: Enumerations with values set by calls to C code, allowing
arbitarily complex value expressions.

R-side initialization of the enumeration structure employs
delayedAssign, which allows the initialization code to be
sourced before loading the shared library, which is the
usual behaviour for code in an R package.
2019-03-08 21:56:36 +11:00
Richard Beare
e9b39797cc Setting enum values with calls to the C code. 2019-03-08 21:56:36 +11:00
William S Fulton
bc0645ce2b Merge branch 'ZackerySpytz-director-classes-final-methods'
* ZackerySpytz-director-classes-final-methods:
  Warning tweaks for destructors that are final in director classes
  Documentation for directors and virtual final methods
  Fixes for final destructors in director classes
  Warning fix for final destructor in directors
  Remove a useless warning filter
  Fix the handling of director classes with final methods
2019-03-03 15:12:53 +00:00
William S Fulton
39b44a377a Warning tweaks for destructors that are final in director classes 2019-03-03 15:12:29 +00:00
William S Fulton
34108deec7 Documentation for directors and virtual final methods 2019-03-03 14:52:57 +00:00
William S Fulton
3b07cba740 Fixes for final destructors in director classes
A class marked as a director with a final destructor should not be a
wrapped as a director class. Fix seg faults in this case.
2019-03-03 14:52:52 +00:00
William S Fulton
b9c4a84780 Warning fix for final destructor in directors
Fix suppression of final destructors used in director classes.
Add testcase for final destructors in director classes.
2019-03-02 19:02:35 +00:00
William S Fulton
195226873e Merge branch 'ZackerySpytz-valid-floating-point-literals'
* ZackerySpytz-valid-floating-point-literals:
  Fix some rejections of valid floating-point literals
2019-03-02 17:48:49 +00:00
William S Fulton
be491506a4 Java std::vector improvements for types that do not have a default constructor.
The std::vector wrappers have been changed to work by default for elements that are
not default insertable, i.e. have no default constructor. This has been achieved by
not wrapping:

  vector(size_type n);

Previously the above had to be ignored via %ignore.

If the above constructor is still required it can be added back in again via %extend:

  %extend std::vector {
    vector(size_type count) { return new std::vector< T >(count); }
  }

Alternatively, the following wrapped constructor could be used as it provides near-enough
equivalent functionality:

  vector(jint count, const value_type& value);

The equivalent change to std::list has also been made (std::list
wrappers were not in the previous release [3.0.12] though).
2019-03-01 18:01:14 +00:00
William S Fulton
9e29ae16d2 Update template_opaque testcase 2019-03-01 08:15:03 +00:00
William S Fulton
83ea2280e2 Fix Python compile errors with overloading and varargs
Fixes wrapping overloaded functions/constructors where a vararg
function is declared after a non-vararg function.
This is a long standing bug in the Python layer exposed since fastunpack
was turned on by default.
2019-02-25 19:27:23 +00:00
Zackery Spytz
cbae09f92f Merge remote-tracking branch 'upstream/master' into director-classes-final-methods 2019-02-24 08:08:52 -07:00
Zackery Spytz
e8cc5929de Remove a useless warning filter
Add cpp11_final_directors to Examples/test-suite/common.mk.
2019-02-24 08:04:45 -07:00
William S Fulton
613ff08150 Java: more replace Object with java.lang.Object 2019-02-23 16:39:21 +00:00
William S Fulton
a57326aa4f Merge branch 'zphensley42-master'
* zphensley42-master:
  Handle review comments
  Updated java std_map to support Obj derivatives by importing original for use in class
2019-02-23 16:30:04 +00:00
William S Fulton
2bf5200242 Changes file entry for Java (const char *STRING, size_t LENGTH) typemaps. 2019-02-23 16:28:21 +00:00
William S Fulton
7fc81f4f85 Merge branch 'gtbX-master'
* gtbX-master:
  Add comment for non-const version
  Don't write-back buffer into Java array when calling const-ptr c function
  Prevent writeback of a const char* array through a director when using the byte[] %typemap.
2019-02-23 16:28:07 +00:00
Zackery Spytz
f0235352c1
Merge pull request #1485 from ZackerySpytz/OCaml-dispatch-function-leaks
[OCaml] Fix possible memory leaks in generated dispatch functions
2019-02-23 09:23:54 -07:00
Zackery Spytz
17d0610d00 [OCaml] Fix possible memory leaks in generated dispatch functions
All paths now free argv.
2019-02-23 04:05:03 -07:00
Zackery Spytz
132359b01d Update the COPYRIGHT file 2019-02-23 04:03:08 -07:00
William S Fulton
a006091b0f Add in a definition for RTYPEDDATA_P for Ruby<1.9.3
This definition ensures the SWIG wrappers keep compiling in older versions
of Ruby given the previous change (which uses RTYPEDDATA_P and hence
requires Ruby 1.9.3). The definition of RTYPEDDATA_P is such that the
previous commit plus the definition should keep the behaviour the same
as before.
2019-02-22 19:55:55 +00:00
Takashi Tamura
72723d354a minor edit 2019-02-22 19:55:55 +00:00
Takashi Tamura
ff9e9f9f98 [ruby] check whether object is of RTypedData using RTYPEDDATA_P. 2019-02-22 19:55:54 +00:00
Zachary Hensley
d812a4291c Handle review comments 2019-02-22 10:55:20 -06:00
Zackery Spytz
c3d652c785 Fix the handling of director classes with final methods
Generated SwigDirector_* classes were attempting to override
methods marked as final.

In addition, give a warning if the destructor of a director class is
final.

Closes #564.
2019-02-22 06:28:53 -07:00
William S Fulton
207d9591f9 Add changes entry for Java finalize suppression 2019-02-21 13:47:39 -08:00
William S Fulton
e6035d625a Java 9 deprecation warning fixes for test-suite and examples 2019-02-21 13:47:39 -08:00
William S Fulton
6d8c1c47f3 Merge branch 'java9_finalize_warnings'
* java9_finalize_warnings:
  [Java] Suppress deprecation warning on finalize method
2019-02-21 13:46:59 -08:00
William S Fulton
2786bf37a1 Fix multiple definitions of swig::container_owner_attribute 2019-02-21 17:57:11 +00:00
Zachary Hensley
1e571417b6 Updated java std_map to support Obj derivatives by importing original for use in class 2019-02-21 09:24:41 -06:00
Zackery Spytz
1c03af9b96 Fix some rejections of valid floating-point literals
Some valid floating-point literals were giving
"Error: Syntax error in input(1)".
2019-02-21 02:11:51 -07:00
William S Fulton
32b963ef1c Re-organise Python method creation and docstring functions declarations
Fix ‘PyMethodDef* SWIG_PythonGetProxyDoc(const char*)’ declared ‘static’ but
never defined [-Wunused-function]

Closes #1448 (again)
2019-02-19 22:54:08 +00:00
William S Fulton
1f46d9b7b9 Fix regression parsing gcc preprocessor linemarkers
These are preprocessor statement in the form:

 # linenum filename flags

Closes #1475
2019-02-19 21:32:04 +00:00
William S Fulton
9038a9987d Add std::vector back reference test 2019-02-18 21:39:17 +00:00
William S Fulton
f19882ed51
Merge pull request #1473 from ZackerySpytz/OCaml-wrapmacro-test
[OCaml] Fix the wrapmacro test
2019-02-18 19:33:22 +00:00
William S Fulton
911bc5310f
Merge pull request #1472 from ZackerySpytz/OCaml-SWIGTYPE-typecheck
[OCaml] Add a typecheck typemap for SWIGTYPE
2019-02-18 19:31:50 +00:00
William S Fulton
be9d736597 Add back-reference to changes file 2019-02-18 19:28:35 +00:00
William S Fulton
a628bf9b6f Python std::vector back-reference changes
Give reference in container_owner a more unique name (back_reference).
Change back-reference 'ret' typemap to have a function name so that they
are less unwittingly be used elsewhere where not intended.

Note that they can be overridden by users if needed using:

%extend std::vector {
%typemap(ret)
  value_type const& __getitem__,
  value_type const& front,
  value_type const& back
  { ...  }
}

These override the SWIG supplied versions because the SWIG supplied
typemaps use non-const value_type&, but the methods use const, so the
above have a higher precedence in the typemap search algorithm.
2019-02-18 18:50:22 +00:00
William S Fulton
b634905b65 Merge branch 'jakecobb-python-container-memory'
* jakecobb-python-container-memory:
  Better name for container back-reference attribute
  Python - Struct spec. for container owner
  Python: Avoid container owner check for value types
  Python: Init container owner attribute in thread-safe way
  Python: Use PyObject_SetAttr instead of PyObject_GenericSetAttr for back-ref
  Python: Cleanup container back ref
  Python: Keep reference to owning container during element access
2019-02-18 07:11:19 +00:00
William S Fulton
b9350614b5 Fix typemap matching to expand template parameters when the name contains template parameters.
In the %typemap below the type is T and the name is X<T>::make
which now expands correctly to X< int >::make

template<typename T> struct X {
  %typemap(out) T X<T>::make "..."
  T make();
};

%template(Xint) X<int>;
2019-02-17 21:38:48 +00:00
William S Fulton
024eaeaacf Improve debug display of parameters
Debug display now displays parameters as strings for "kwargs", "pattern",
"templateparms", "throw" elements in the parse tree (not just "parms"
and "wrap:parms").
Add in single quotes when displaying these parameter lists as strings.
2019-02-17 20:03:23 +00:00
William S Fulton
629c881de5 Template instantion fixes when template parameter is used twice in type
For example T in:
Y<T>::YYY<T>::value_type
2019-02-17 20:03:18 +00:00
Zackery Spytz
10d62aecd5 [OCaml] Fix the wrapmacro test
Add a typecheck typemap for size_t and const size_t &.

Add the const qualifier to the typemaps for primitive reference
types.

Add multiple runtime tests.
2019-02-17 01:41:59 -07:00
William S Fulton
de861bea64 Memory leak fixes calling Swig_scopename_split 2019-02-16 13:06:43 +00:00
William S Fulton
eb7b989c61 Fix parser error containing multiple #define statements inside an enum.
The second #define fails to parse:

  enum FooEnum {
    ENUM1 = 0,
    ENUM2 = 1,

  #define MACRO_DEF1 "Hello"
  #define MACRO_DEF2 "World!"

    ENUM3 = 2,
    ENUM4 = 3,
  };

Bug mentioned at https://sourceforge.net/p/swig/patches/333/
2019-02-16 08:09:56 +00:00