Commit graph

49 commits

Author SHA1 Message Date
brgirgis
0f48af8a05 Fix one casting warning on Linux (#787) 2016-09-12 09:21:20 +12:00
Mike Romberg
7dc5879714 castmode was failing overflow tests. Fix it. 2016-06-25 21:17:38 +01:00
Alec Cooper
2e1595a4d0 When possible, use PyInt rather than PyLong
This is especially important for the unsigned long typemap, which is used by
the size_t typemap, which is in turn used for lengths of std containers etc.
In Python2, len requires old-style classes' __len__ method return a PyIntObject
rather than a PyLongObject, so this supports that requirement.
2016-02-04 15:27:54 -05:00
Alec Cooper
4e2fc7d115 Don't use long long if it isn't available
Adds preprocessor checks to avoid defining functions that use long long if it isn't available
Effects the following languages: javascript, octave, perl, python, r, ruby, tcl
2016-01-06 16:52:37 -05:00
Alec Cooper
ba01182ec4 Fixing Python primitive conversions
Don't mistakenly treat PyLong objects as PyInt objects in Python3.
  This resolves issues of large integers being incorrectly treated as -1 while also having
  an OverflowError set internally for converting PyLong->long and PyLong->double
Conversions from PyLong to long, unsigned long, long long, and unsigned long long now
raise OverflowError rather than TypeError when given an out of range value.
Removing unnecessary check for PyLong_AsLong when converting PyLong->unsigned long since the
call to PyLong_AsUnsignedLong will have covered this case.
2015-12-23 19:04:19 -05:00
William S Fulton
504c2030bb Change in default behaviour wrapping C++ bool for Python.
Only a Python True or False will now work for C++ bool parameters.
This fixes overloading bool with other types.
2014-03-08 12:04:19 +00:00
William S Fulton
5481270c2a Fix Python 3 inconsistency handling -ve numbers for unsigned C types.
An OverFlow error is now consistently thrown instead of a TypeError.

Fixes primitive_types testcase for Python 3
2013-05-25 10:36:14 +01:00
Vadim Zeitlin
0ca11c8b6f Fix overflow with parameters > LONG_MAX with Python 3.
The typemap incorrectly called PyInt_AsLong() if PyInt_Check() passed, but
this check is the same as PyLong_Check() for Python 3 and so the correct
PyLong_AsUnsignedLong() function was never called. As a consequence, passing
any value greater than LONG_MAX (e.g. 0x87654321 on 32 bit architectures) to a
function taking unsigned int, unsigned long or size_t parameter failed with an
overflow error being generated.

Fix this by simply disabling the part of the code dealing with PyInts for
Python 3 as there is no distinction between PyInt and PyLong there any more.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13877 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-09 17:57:42 +00:00
Stefan Zager
00328ccdb3 python: disambiguate SWIG_From_unsigned_SS_int and SWIG_From_unsigned_SS_long.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13106 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-23 04:05:11 +00:00
William S Fulton
68a135860d Revert rev 12835 as it introduces a failure in the test-suite (primitive_types test)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12983 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-14 17:30:03 +00:00
Stefan Zager
2bf6de71b8 bug 3429388: python unsigned integer handling on 32-bit architectures.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12835 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-11-05 03:35:03 +00:00
Stefan Zager
3cb76bb45e Slight tweak to output typemap for int
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12738 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-06-11 05:49:49 +00:00
Stefan Zager
50425dc95e For all long integer types, use PyLong_From* rather than PyInt_From*
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12732 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-06-03 18:42:38 +00:00
Olly Betts
8178898960 [python] Simpler code for SWIG_AsVal_bool() which fixes a "strict
aliasing" warning from GCC - patch from SF#1724581 by Andrew
Baumann.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9938 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-09-17 23:52:16 +00:00
Marcelo Matus
a2c99f619d reduce the aliasing warnings (when compiling with CFLAGS='-O2 -Wstrict-aliasing=2') to the minimum, ie, enums and pointer to functions
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8883 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-23 21:43:33 +00:00
Marcelo Matus
ce94984b71 fix errors for 32bit arch.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8523 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-23 00:33:19 +00:00
Marcelo Matus
a032063785 fix cast from double to long long
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8458 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-15 09:18:58 +00:00
Marcelo Matus
689a94c1f6 fix missing long
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8456 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-15 08:44:46 +00:00
Marcelo Matus
7223672e09 securing the call to SWIG_IsOK, which is a macro
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8131 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-30 01:14:24 +00:00
Marcelo Matus
0e4b388ec9 add implicitconv support and cosmetics for cast rank
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8095 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-27 22:06:26 +00:00
Marcelo Matus
6bf5187168 add castmode in python and cleaning the castdispatch mechanism
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8051 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-23 09:22:17 +00:00
Marcelo Matus
d6f0a99b3e fix bool AsVal
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7817 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-11-07 11:13:16 +00:00
Marcelo Matus
3c65cea431 Perl added to the Unified typemap library, cleaner way to use the library, and 'normalized' macro names
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7707 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-24 14:59:05 +00:00
Marcelo Matus
7e5e4fd1f9 massive typemap unification
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7676 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-10-18 13:24:15 +00:00
Marcelo Matus
233f1ab7e6 change the Int/Long check order, just in case since 'int' could be too permissive
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7312 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-06-21 18:55:43 +00:00
Marcelo Matus
a83919ab69 remove the _AS_XX macros, just in case the Check methods are too permissive
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7311 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-06-21 18:52:04 +00:00
Marcelo Matus
3c93d884c7 fix more VC7.1 warnings
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7016 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-28 23:59:51 +00:00
Marcelo Matus
192e00615d More fix for warnings, and add some of the ideas of the Bill's 'labels' patch
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6998 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-24 23:48:20 +00:00
Marcelo Matus
d8ae51668b fix include in bug #1076122
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6821 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-12-01 12:02:46 +00:00
Marcelo Matus
966290225e fix error in bool
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6817 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-12-01 01:20:42 +00:00
William S Fulton
f0e60adb7b warning fixes for VC++
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6694 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-08 21:18:10 +00:00
Marcelo Matus
2d4f884ee0 fix warnings for MS compiler
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6585 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-01 22:16:52 +00:00
Marcelo Matus
09608bc2c5 more docs/split and cleaning
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6421 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-18 00:31:24 +00:00
Marcelo Matus
78293bbeee fix bug report 1039688
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6325 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-05 21:43:34 +00:00
Marcelo Matus
e46c80edf8 replacing SWIGSTATIC(a) by SWIGINTERN a
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6290 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-02 20:15:46 +00:00
Marcelo Matus
a4a7a2ff1f better error messages, more comments, clean up for the next major modifications
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6284 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-10-02 01:43:17 +00:00
Marcelo Matus
349e6bc6ee using <> when including lib files, fix char{ANY], add char FIXSIZE[ANY], fix pyfragments.swg, fixing *.swg and *.i names
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6250 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-09-17 06:17:35 +00:00
Marcelo Matus
1c899f9c96 fix solaris warning
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6183 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-08-31 20:15:54 +00:00
Marcelo Matus
f473b1f152 added wchar_t type
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5835 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-06 06:31:24 +00:00
Marcelo Matus
86a9374ea1 fix more comp. warns
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5833 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-06 00:10:14 +00:00
Marcelo Matus
e0e8157d0b suppress compiler warns and more cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5830 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-05 20:20:36 +00:00
Marcelo Matus
1206afb516 fix bad FLT_MIN use
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5800 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-30 01:53:52 +00:00
Marcelo Matus
f896efa6dd fixes for strings and cosmetics
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5792 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-28 13:34:16 +00:00
Marcelo Matus
e6711328a6 more comments and cosmetic fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5789 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-23 01:07:45 +00:00
Marcelo Matus
7afe6bc139 normalizing the inout typemaps and other cosmetic fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5782 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-21 23:26:18 +00:00
Marcelo Matus
2568b57d46 extending std_string and more fixes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5771 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-18 21:20:55 +00:00
Marcelo Matus
cf2e4870e7 another fix for long long
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5762 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 18:40:44 +00:00
Marcelo Matus
1d5529bcfc better STL support, see CHANGES.current
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5755 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-03-17 09:41:19 +00:00
Marcelo Matus
68024b15ce Reducing pyrun.swg and splitting python.swg into different files
for clarity and for easier maintainance.

pyrun.swg almost the same than 1.3.20, therefore there will be
compatible again.

code generated is reduced by the use and reuse of %fragments.

as usual, all the test-suite is compiling and a much bigger
"test project" too.

with the new typemaps definition should be much eaiser and
uniform add stl/std and user types.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5706 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-10 09:50:24 +00:00