Commit graph

410 commits

Author SHA1 Message Date
Marcelo Matus
d3caa4eefc Fixes for SWIG_TypeQuery and templates/typedefs,
before the swig_type_info fields 'str' and 'name'
where not consistent, one was fully resolved (name),
the other not, therefore

  typedef int Int;
  template <class C> struct Class {};

  SWIG_TypeQuery($descriptor(Class<int>*))

wasn't necessary the same that

  typedef int Int;
  template <class C> struct Class {};

  SWIG_TypeQuery("Class<int> *")

the problem was visible only when the latter form was used,
like in a static auxiliar function outside a typemap.

also, relax type name comparison with blanks, ie

  SWIG_TypeQuery("Class<int> *") := SWIG_TypeQuery("Class<int > *")


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5703 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-10 03:42:38 +00:00
Logan Johnson
d562e7eef4 Be sure to initialize all of the fields of the PyTypeObject struct to
something, to avoid numerous compiler warnings.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5700 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-06 17:45:49 +00:00
Marcelo Matus
82d298ac31 add the CPLXFLT and CPLDBL checking codes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5692 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-28 01:34:32 +00:00
Marcelo Matus
3f1f31d1e8 Fix long long and other warnings.
Add the macros

%typemap_asfromcheck()
%typemap_asfrom()

that can be used to defined all the different typemaps
for types where the As/From/Check methods are provided.

All the basic type (int, char,...) typemaps are implemented
using them.

The std::string and std::complex<T> are reimplemented using
the new %typemap_asfrom/check macros too. This helps to complete
all the previously missing typemaps (consttab, varin, varout,..)
and also ilustrates how to define the As/From/Check methods
to use with the %typemap_asfrom/check macros.

As a byproduct, the C complex typemap was added, and the file

complex.i

can be used to load the complex support for either C or C++. The
original C++ std_complex.i is still there, and the corresponding C
ccomplex.i too, if they need to be included explicitly.

Also, the As/From methods are declared via %fragment, so, they
can be reused as needed, and only appear in the wrapped code if
they corresponding typemap is invoked, making the typemaps
and the entire code shorter and simpler.


Marcelo.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5691 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-28 01:30:13 +00:00
Marcelo Matus
c429cdb9fc add support for char* to accepts char* :), before
they only accept PyStrings.

now the raw pointer from calloc.i, for example, works
fine.

some of the SWIG_PyObj_(As|From)XXX routines are getting
too large, so, they also will go into the runtime library.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5689 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-26 11:55:22 +00:00
Marcelo Matus
839f109a81 Better mapping of char[ANY] in python, including embedded
null chars, which are allowed in C++ and python, and proper
sizes:

  you can use a shorter string to assign a char[6]:

     x = "he\0l"  -> x := {'h','e',0,'l',0, 0}

  but you always get back in python the original size:

   x := {'h','i','0','0',0, 0} -> "hi\0\0\0\0"

Better mapping of (char*)0, now you get a None in the python
side, and using None, you get a (char*)0, just like
all the other C++ pointers. Before (char*)0 was mapped
into python as "", or as seg. faults.

Better mapping of "", which is not None nor (char*)0.

Added more tests using primitive types with simple templates.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5687 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-25 09:45:18 +00:00
Marcelo Matus
59e7aca99a properly manage the strange but valid case:
typedef char namet[5];
  const namet def_namet = {'h','o', 0, 'l','a'};

ie, char arrays with null embedded characters, and other odd
char[ANY] situations.

add the corresponding test to the primitive_types.i and runme files.

Marcelo

 ----------------------------------------------------------------------


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5685 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-24 07:20:59 +00:00
Marcelo Matus
4b828ef358 fix missed ANY temporal
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5684 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-24 02:43:54 +00:00
Marcelo Matus
7c6097b392 more on uniforming and 'securing' the typemap declarations
for primitive types.

Finally, you can safetly write:

%apply int {enum Hello};
%apply long {size_t};
%apply int {MyIntClass};

or using references

%apply const int& {const enum Hello&};
%apply const long& {const size_t&};
%apply const int& {MyIntClass&};

and all the primitive typemaps(in, out, directorin, directorout,
constcode, throws, varin, varout) are safetly applied to the
desired types (including the proper conversions when needed).

In fact, the python.swg file now has no typemap
defined for enums, and only use the %apply directives
as above.

Now the primitive_types.i extensive test runs properly.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5683 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-24 00:43:47 +00:00
Marcelo Matus
5c62c8cda2 fix typos
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5676 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-23 00:25:42 +00:00
William S Fulton
0f9eff6b62 example correction
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5662 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-21 21:24:46 +00:00
Marcelo Matus
54737ee9a9 - recover the proper catching exception mechanism for classes
(throw typemap).

- fix the examples with exception problems and warnings

- proper and consist treatment of basic types (short, unsigned char,...)

  now all are checked for range and sign. Before, this was depending of
  the use of parsing or no parsing, and/or the converter method, and/or
  the use of directors, etc.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5659 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-21 01:15:10 +00:00
Marcelo Matus
63cdb9b4d0 small error fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5649 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-20 20:51:46 +00:00
Marcelo Matus
9030e12d3f fix mixed type
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5647 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-20 20:46:31 +00:00
Marcelo Matus
63f7c13322 added 'self'
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5637 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-15 09:04:27 +00:00
Marcelo Matus
2f298a330a added the SWIG_CATCH_STDEXCEPT macro to map stdexcept -> SWIG_exception
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5628 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-13 01:41:19 +00:00
Marcelo Matus
e5ee4d1ac7 fixed the *::clone() warning
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5626 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-13 01:38:45 +00:00
Marcelo Matus
339a7e6aec restored the string kw, now it works fine
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5625 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-01-13 01:38:07 +00:00
Marcelo Matus
bcdcb96b47 Adding missing built-in functions and names to pythonkw.swg and
fixing operator! warning code in python.swg


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5573 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-16 06:00:09 +00:00
Dave Beazley
541803fdf9 *** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5571 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-16 03:41:33 +00:00
Dave Beazley
686a6323c6 Changed warning to 321. 315 already used. Consult Warnings.html for list.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5570 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-16 03:40:00 +00:00
Dave Beazley
5f113875d1 Changed warning message.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5569 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-16 01:58:23 +00:00
Marcelo Matus
bc95409961 be sure the global bad names refer to global functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5567 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-15 19:29:09 +00:00
William S Fulton
574d1db50b Removed default %csmethodmodifiers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5557 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-13 00:18:32 +00:00
William S Fulton
f75d7cd856 Removed default %javamethodmodifiers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5556 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-13 00:17:58 +00:00
Dave Beazley
9494cfbf85 *** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5551 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 18:29:00 +00:00
Marcelo Matus
a8e552c932 added defined
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5550 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 08:25:10 +00:00
Marcelo Matus
720993e41f using code 315 for bad names only
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5548 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 07:15:00 +00:00
Marcelo Matus
c32f1d93d1 added ocaml keywords
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5547 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 07:12:42 +00:00
Marcelo Matus
8e8e0ce6e8 Forgot #undefs, add python bad names, change names from
tclkw.swg and phpkw.swg to the right ones tcl8kw.swg and php8kw.swg.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5546 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 06:15:46 +00:00
Marcelo Matus
8abe741cdc swig -DSWIG_ALLKW was too ugly. Use -Wallkw instead. Reverting swig.swg
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5545 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 06:12:29 +00:00
Marcelo Matus
7b8f415319 - Uniform the definition of the keyword warnings through
the supported languages.

- Added keyword list for most of the languages that didn't
  have one.

- "All keywords" warning support, through the -DSWIG_ALLKW
  option.

Read the Changes.current


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5543 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-12 02:23:52 +00:00
Marcelo Matus
72984676ca Lateral change to add runtime "reprotection" at the python
side for protected director members.

Lib/python/director.swg: added needed code for runtime checking
Source/Modules/python.cxx: added needed code for runtime checking
director_protected_runme.py: checks now that the runtime protection is working


The extra runtime checking is only done for protected members,
so, the old public directors members don't feel any overhead.

This finished the director protected support for the python language.
Java and Ocalm will need to add the "reprotection" mechanism latter.
But as in the python case, the changes will be localized in the
languages files, and there will be no need to touch the core
files anymore.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5532 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-11 01:59:12 +00:00
William S Fulton
f2625b4671 Corrected SWIG_JavaThrowException to be static
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5521 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-09 21:54:59 +00:00
Dave Beazley
ffe434c22f *** empty log message ***
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5513 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-09 12:44:49 +00:00
Dave Beazley
09d0af6fea Added pack/unpack functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5502 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-08 18:07:36 +00:00
William S Fulton
f31537e62d Put STRING_OUT typemaps back in.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5493 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-06 23:02:03 +00:00
Marcelo Matus
0f19564193 Fixes to support protected members with director, proper virtual member recognition and support of the nodirector feature
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5485 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-05 01:59:28 +00:00
Dave Beazley
748462bb3e Fixed perl5.005 problems
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5480 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-04 19:14:14 +00:00
Art Yerkes
e0dca0ec65 shapes example: slight correction to depth map.
makedebugtop: include swig.cmo
Lib: factored out more common code, slightly reorganized class type.
     added director define and exceptions.
     std_string: length from the original ocaml string (no longer depends on
      null termination)
     ocamldec.swg/ocaml.swg: added caml_string_len
Examples/Makefile.in: quiet about checking out files.
Ocaml.cxx:
     Fixed abstract director test case.
     Include/exclude director.swg based on directors being enabled.
Final edits for 1.3.20, barring bugs being discovered.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5477 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-04 06:15:07 +00:00
Luigi Ballabio
a07b071331 Fixed problem with std::vector<unsigned int>
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5470 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-03 08:23:00 +00:00
William S Fulton
a9396525e8 Fix for INOUT and OUTPUT typemaps for when the JNI type is bigger than the c type.
For example unsigned long (32bits) is mapped to jlong (64bits)


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5466 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-02 22:29:54 +00:00
Dave Beazley
82986fa76b Fixed [ 755382 ] calling func(const vector<T>& p) evaluates p[0] in interp.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5459 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-02 19:47:14 +00:00
Art Yerkes
074327ba72 All test cases compile except director_abstract. I clued from what
William Fulton and Dave were talking about regarding the template parameters
and (), and this solved a bunch of wierd little problems I was having.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5455 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-12-02 08:50:39 +00:00
William S Fulton
d2430605d9 Completely removed SWIG_NOINCLUDE as the functions that use it don't need to be shared across different modules, besides there is no runtime library for C#
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5448 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-30 20:54:49 +00:00
William S Fulton
1c2d0058bd Completely removed SWIG_NOINCLUDE as the functions that use it don't need to be shared across different modules, besides there is no runtime library for Java
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5447 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-30 20:54:37 +00:00
Dave Beazley
03eaf2d72a Added member pointer typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5445 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-30 18:53:43 +00:00
William S Fulton
5439863ce1 #849064 fixed. Any classes with a non public destructor now have a public delete() method which throw a runtime exception. The delete() method was previously protected.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5440 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-28 23:13:08 +00:00
Dave Beazley
1bb91ece90 Added Perl support for member pointers. Some reorganization of other runtime code
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5436 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-28 20:56:17 +00:00
Dave Beazley
e4319e118e Fixed (char *STRING, int LENGTH) typemap to use STRLEN type.
Eliminates compiler warning.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5434 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-28 19:24:38 +00:00