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).
* 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.
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.
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.
* 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
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.
Tests for std::vector of pointers added which check
std::vector<T*>::const_reference and std::vector<T*>::reference
usage which gave compilation errors in Python and Perl which had
specialized these vectors incorrectly.
* 'master' of git+ssh://github.com/swig/swig:
[Python] Fix some errors in the documentation for -threads
Fixed typo in Perl5 docs.
Update PHP testsuite for vadz's new cars
[php] Whitespace improvements in generated C/C++ code
Fix hardcoded _v in PHP typecheck typemaps
* bkotzz-add_set_map:
Add missing typedefs to Java STL containers
Combine duplicate unordered_set unordered_map testcases
Nicer looking generated Java container code
Replicate some cosmetic changes from std_map.i
Legacy macros, protected iterator, typedefs
Remove c++11 from stl.i
Add to STL file as well
Maps both working as java.util impls
Mostly working for map
Add set/unordered_set that extend AbstractSet
Move unordered containers under cpp11_ prefix
Add test cases to C++11 list
Add unordered_{set|map} and set to Java
The OCaml module's typemaps.i supplied argout typemaps for some
reference types (e.g. int &) by default, which was unintuitive and
inconsistent when compared with other modules. The argout_ref example
depended on this, so add a typemap to argout_ref/example.i.
Add multiple runtime tests that deal with references.
Fix access to already released memory during PHP module shutdown, which
often didn't cause visible problems, but could result in segmentation
faults, bus errors, etc. Fixes#1170, reported by Jitka Plesníková.