Commit graph

76 commits

Author SHA1 Message Date
Olly Betts
55377bdc08 Add DOH Exit() and SetExitHandler()
Exit() is a wrapper for exit() by default, but SetExitHandler() allows
specifying a function to call instead.

This means that failures within DOH (e.g. Malloc() failing due to lack
of memory) will now perform cleanup such as removing output files.

This commit also cleans up exit statuses so SWIG should now reliably
exit with status 0 if the run was successful and status 1 if there was
an error (or a warning and -Werror was in effect).

Previously in some situations SWIG would try to exit with the status set
to the number of errors encountered, but that's problematic - for
example if there were 256 errors this would result in exit status 0 on
most platforms.  Also some error statuses have special meanings e.g.
those defined by <sysexits.h>.

Also SWIG/Javascript tried to exit with status -1 in a few places (which
typically results in exit status 255).
2022-03-06 12:33:54 +13:00
Olly Betts
5755f399a2 Eliminate some temporary buffers 2022-03-03 12:27:04 +13:00
Olly Betts
3f78ea64c0 Remove bogus reference to allegrocl:old-sym:name
It'll never be set under -cffi.  Looking at the history it looks like
this is just a remnant from this file being originally created by
copying allegrocl.cxx.
2021-05-13 10:41:01 +12:00
Olly Betts
9ddc9dceb7 Remove support for $source and $target
These were officially deprecated in 2001, and attempts to use them have
resulted in a warning (including a pointer to what to update them to)
for most if not all of that time.

Fixes #1984
2021-04-30 10:20:14 +12:00
William S Fulton
08688d7d9d Add support for "ret" typemap where missing and improve documentation on it. 2016-09-29 08:07:26 +01:00
William S Fulton
1d62790928 Fix assertion for some languages when wrapping a C++11 enum class that is private in a class.
Also don't wrap private enums for a few languages that attempted to do so.

Closes #594.
2016-03-31 20:27:36 +01:00
William S Fulton
e03d0b0525 Don't truncate cffi character constants 2016-03-13 10:16:21 +00:00
Petre Eftime
0a07cd4c30 Prevent redefinition warnings when compiling with SWIG<module> defined
Signed-off-by: Petre Eftime <petre.p.eftime@intel.com>
2015-12-22 14:33:21 +02:00
William S Fulton
3d681571e1 Merge pull request #498 from lyze/extend-cffi-typemap-machinery
Implement argout, freearg, and check for CFFI.
2015-10-11 22:11:09 +01:00
David Xu
8275f8158a Implement argout, freearg, and check typemaps for CFFI. 2015-08-10 21:47:12 -04:00
David Xu
c1fad12bdb Extend the export feature in the CFFI module to support exporting to a particular package. 2015-08-05 21:58:50 -04:00
Ivan Shvedunov
21ef7bc243 CFFI: handle array struct/union members. 2014-12-20 17:12:39 +03:00
Olly Betts
36be36d618 Eliminate needless casting away const from string constants 2014-04-30 12:00:23 +12:00
Nikhil Shetty
aad30cf4de BUGFIX: superclass name not lispy
The superclass names were not lispified correctly and so the class was inheriting
from erroneous class symbols.

Closes #96.
2013-10-12 14:32:50 +01:00
William S Fulton
7fcfdeee08 Fixes detecting if a variable is extern when using 'extern thread_local' 2013-02-08 07:38:10 +00:00
William S Fulton
7841a0d097 Remove cvs/svn Id strings 2013-01-12 01:21:16 +00:00
William S Fulton
04b60a1508 CFFI - Fix some string constants are incorrect
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13963 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-14 08:00:22 +00:00
William S Fulton
1ab67f5bed Fix CFFI incorrect constant names
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13962 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-14 07:38:44 +00:00
William S Fulton
7ca0497647 CFFI - fix junk output when wrapping single character constants
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13944 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-02 13:36:40 +00:00
William S Fulton
89052f3b0a Fix Strcmp - it didn't have consistent null pointer handling - revert to what it used to be - a lightweight wrapper around strcmp which means functions once again must not pass in null to it.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13943 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-02 13:36:13 +00:00
William S Fulton
092e2104c7 More consistent use of DOH namespace
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13940 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-26 20:31:54 +00:00
William S Fulton
681c6c6231 Fix possible null dereferences in CFFI
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13921 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-20 23:27:54 +00:00
William S Fulton
5a1e82a2f4 Remove DohClose (Close) and replace with calls to DohDelete (Delete) to fix some minor memory leaks in most uses of NewFile.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13885 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-14 22:16:07 +00:00
William S Fulton
7b58300cbd Fix display of pointers on 64 bit systems, only 32 bit values were being shown.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13340 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-07-21 22:52:30 +00:00
William S Fulton
24133bacd7 Remove numerous hard coded 'result' variable name in generated c/c++ wrappers. The variable name is now defined in just one place, making it possible to change the name easily if a target language so wishes - see cwrap.c.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12830 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-10-30 21:51:50 +00:00
William S Fulton
b69b793d8e Better consistency in usage display
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12524 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-03-09 21:42:38 +00:00
William S Fulton
cb64f65bae SWIG license change - Source moves to GPLv3
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11876 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:53:33 +00:00
William S Fulton
83bd820285 Add typemaps used debugging option (-debug-tmused). Fix missing file/line numbers for typemap warnings and in the output from the -debug-tmsearch/-debug-tmused options
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-01-04 19:33:52 +00:00
William S Fulton
224c83ef09 Typemap API changes to facilitate more uniform typemap handling across language modules - in particular some typemaps usage did not respect the warning attribute and other warning handling and $typemap special variable (which will be refined in future commit) as well as local typemap variable handling:
- remove Swig_typemap_search, Swig_typemap_search_multi and Swig_typemap_attach_kwargs from access outside of typemaps.c (made static)
  - all static methods in typemap.c renamed dropping Swig_ prefix


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11380 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-07-08 12:17:45 +00:00
William S Fulton
3d05f50eab CFFI - Fix seg faults when for %extend and using statements
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11136 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-20 23:55:37 +00:00
William S Fulton
efa11dee52 add new %begin directive for inserting code at top of wrapper file
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11133 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-20 07:52:24 +00:00
William S Fulton
5ec2d8c166 All languages now define a macro in the generated C/C++ wrapper file indicating which language is being wrapped, eg #define SWIGJAVA
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11018 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-30 00:38:34 +00:00
William S Fulton
d2f69e6a34 add missing language specific preprocessor define where missing for some languages
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11017 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-29 23:56:03 +00:00
William S Fulton
cc522323d7 create a common banner header for all target language specific files
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11016 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-12-29 22:56:25 +00:00
William S Fulton
6fb0f48935 customised ccache support: read the CCACHE_OUTFILES env variable and if exists, the names of all generated files are written to the filename specified in the env variable
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10898 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-11-03 12:51:45 +00:00
William S Fulton
907171735f patch #2079381 submitted by Boris Smilga - constant exprs put into no-eval context in DEFCENUM
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10807 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-09-01 21:46:41 +00:00
William S Fulton
8b42082f88 Apply patch from Petr Viktorin to fix some recent regressions in CFFI/CLOS
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10487 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-21 22:15:52 +00:00
William S Fulton
dfcb1640bf Remove old swig-1.1 Swig_typemap_lookup function. Rename Swig_typemap_lookup_new() to Swig_typemap_lookup()
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10453 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-15 21:18:44 +00:00
William S Fulton
336b50b43d Add the optimal attribute to the out typemap for more optimal code generation when returning objects by value
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10450 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-14 22:12:31 +00:00
William S Fulton
b67e0a28a3 Fixes for $wrapname to work in %exception
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10265 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-02-25 22:07:28 +00:00
William S Fulton
39abd80eef Changes to compile with VC++6
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10099 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-11-10 21:10:17 +00:00
William S Fulton
fe042d2ebc Replace cvs $Header$ with svn $Id$
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10003 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-10-17 21:42:11 +00:00
John Lenz
fb51964d01 Fix a bunch of minor bugs found by Coverity scanner
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9889 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-08-10 02:55:27 +00:00
Surendra Singhi
43fe81ce1a changed package name clos to cl
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9879 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-07-31 17:18:27 +00:00
Surendra Singhi
3aaa08c856 fixed memory freeing bug, removed tabs
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9878 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-07-31 17:08:12 +00:00
Olly Betts
02d382d880 Removed unused extra arguments from calls to Printf().
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-05-09 01:25:57 +00:00
Surendra Singhi
0ee9f91eb8 fixed closing paren
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9689 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-04-21 19:10:14 +00:00
Surendra Singhi
4beedd3f04 Fixed a bug with clos method, and generating constructors.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9687 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-04-21 09:26:31 +00:00
Surendra Singhi
85a3666f7c git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9666 626c5289-ae23-0410-ae9c-e8d60b6d4f22 2007-04-01 13:22:36 +00:00
Surendra Singhi
ea90e889fa Patch 1656395
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9649 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2007-02-26 13:16:01 +00:00