* alexey-pelykh-cpp11_strongly_typed_enums__direct_inject_in_java:
Enhance cpp11_strongly_typed_enumerations testcase and turn it on
Simplify/improve strongly typed enum implementation for Java
Rewrite some Java director nested class support code for strongly typed enums
Expand director_nested_class test to test more than one level of nesting
Add director_nested_class testcase
Removed useless code (it does not affect output, at least on our testcases)
Java/Fix: swig_connect_director used not-fully-qualified classname (proper)
Java/Fix: swig_connect_director used not-fully-qualified classname
Java: fix generation of ProxyName when JNI descriptor is requested - for inner classes '$' should be used as separator instead of '/'
Java: fix invalid director 'self' variable type name (wasn't fully qualified)
Clean-up test suite and fix issue with nspace, as well as keep the fix for Class::Struct::EnumClass being JNI-referenced as Struct_EnumClass
C++11 strongly-typed enums fix for Java only (proper)
Revert "C++11 strongly-typed enums fix for Java only"
Additional test cases for C++11 strongly-typed enums
C++11 strongly-typed enums fix for Java only
Turns out the issue that led me to push a broken commit in
the first place also caused the build to succeed when I
tested the fix in a rush. I should've just used the GitHub
merge button. Sorry for the noise, hopefully won't happen again.
The original code was ported from the C# module. It looks like it
tried to avoid reading TLS data by using a shared counter. However,
without also synchronizing on the counter check (or using atomics)
the code is racy. While the races might be benign (the thread that
sets the exception also increments the counter, so when there is
actually an exception, the visible value will always be non-zero
even if it is outdated), they are still undefined behavior,
strictly speaking. Additionally, just using TLS isn't expensive
either.
Just "%typemap(ddirectorout) MyType &USEME = SWIGTYPE &;" does not
inherit the antivepointer attribute from the SWIGTYPE & case, but
the other typemaps that are not overridden (dout/…). Thus, some
of the emitted code used native pointers, and some SWIGTYPE_p_int.
Object is currently a D keyword for the purposes of SWIG
(that's in fact a little too strict, but Object is the root
of the class hierarchy and some parts of the code break).
'template_typedef_typedef' is supposed to test.
Previously, the function pointers were not only declared with
extern(C) calling convention, but actually had C linkage
themselves. Thus, they were exported under their bare names,
potentially colliding with the actual function definitions
in the wrapped library if the dynamic linker decided to
resolve them the wrong way.
This fixes the sneaky1 test case, although I have no idea why
the add() reference in D_add() (via the PLT) is rebound to the
function pointer there and not in all other test cases and
real-world libraries. As far as I can see, there don't seem to
be any special symbol visibility/binding settings involved in
our build system.
There might be other cases where this happens when $dclassname
is used for code emitted into the proxy class itself, but so
far, there are none in the test suite or any bug reports.
The director cycle breaking code was emitted when protectors
were not actually enabled on the parent class, leading to
swigIsMethodOverridden being called but not declared.
Fixes unknown preprocessor directive error introduced in #217
commit 255c929c56
These were probably intended as script comments using # when C/C++
comments using // or /* */ should have been used.