Commit graph

3,198 commits

Author SHA1 Message Date
Olly Betts
50f92dca08 Mark wrapped abstract classes
This allows restoring reflection checks in testcase director_abstract.
2021-04-14 10:59:12 +12:00
Olly Betts
836258b9d3 Fix some cases of converting PHP NULL to C++ NULL
Fixes testcase overload_null for PHP 8.0
2021-04-13 16:53:52 +12:00
Olly Betts
37f575b7b4 Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-04-13 15:15:09 +12:00
Olly Betts
623dd7a394 Eliminate CALL_METHOD and CALL_METHOD_PARAM_1 macros
These names lack a "SWIG_" prefix to help prevent collisions with code
being wrapped, but they're each only used in one place so just inline
them there.
2021-04-13 14:42:33 +12:00
Olly Betts
a216f6ca3c Stop generating unused Zend resource destructors
These aren't used since we stopped using PHP resources to wrap classes.
2021-04-13 13:13:24 +12:00
Olly Betts
09b968474d Removed unused #define-s in generated code 2021-04-13 12:43:02 +12:00
Olly Betts
d2542eadf6 Remove redundant cast 2021-04-13 11:16:59 +12:00
Olly Betts
0bf846f56f Eliminate unused Printf args 2021-04-13 10:43:51 +12:00
Olly Betts
0a72bfc630 Eliminate tempPointer variable 2021-04-13 10:18:47 +12:00
Olly Betts
93a288c85a Fix memory leak in SWIG tool 2021-04-13 10:14:29 +12:00
Olly Betts
60e7deda2c Eliminate non-standard $lower_param typemap variable 2021-04-13 10:03:03 +12:00
Olly Betts
1757f548a4 Make -py3 generate a check for Python >= 3.0
Closes #1777
2021-04-12 15:07:00 +12:00
Olly Betts
a0174ea7fe php: Fix testcase li_boost_shared_ptr_bits 2021-04-04 18:58:24 +12:00
Olly Betts
40da8bcbb6 php: Wrap classes using only swig_object_wrapper
We no longer use PHP resources to wrap classes, and the proxy classes no
longer has a _cPtr property.
2021-04-04 07:45:20 +12:00
Olly Betts
0267ee374b Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-04-02 08:13:10 +13:00
Olly Betts
18bc3e287b php: Avoid double underscore in generated code
These are reserved by the C++ standard, but we were generating them
in the le_swig__... names.
2021-04-02 08:07:44 +13:00
Olly Betts
d2a0956766 Remove NULL check which can never be NULL
A pointer to a struct member can't be NULL!
2021-04-02 07:59:35 +13:00
Olly Betts
a1abc692d3 Eliminate per-class dtor function
These are all the same, and the NULL check performed is done inside
zend_objects_destroy_object() anyway, so we can just set the dtor
to zend_objects_destroy_object (which is what in-tree PHP extensions
do.)
2021-04-02 07:58:08 +13:00
Olly Betts
c467a66668 Remove debug code 2021-04-01 14:40:32 +13:00
Olly Betts
5838f10aa0 wrap fake class constants via C API 2021-04-01 14:40:32 +13:00
Olly Betts
43457690ac Eliminate another global variable 2021-03-31 11:10:34 +13:00
Olly Betts
46ef0eb9a1 Fix value of $source typemap parameter
This is only present for ancient compatibility so nothing actually
tests it works.
2021-03-31 10:57:34 +13:00
Olly Betts
3b1cc00566 Eliminate 3 List variables
Rather than building up lists of classes and details about them to
generate from at the end, just generate into a new String variable as we
go along.
2021-03-31 10:55:26 +13:00
Olly Betts
d24e09c57d Remove now-unused variables and code to set them 2021-03-31 05:02:13 +13:00
Olly Betts
904f5a65d8 Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-03-31 04:53:40 +13:00
Olly Betts
2392f6146a Remove variables which are set but never used 2021-03-31 04:39:18 +13:00
Olly Betts
c863ca8b1f Use zstring access macros
These are likely to be more future-proof than accessing struct members
directly.
2021-03-29 18:18:37 +13:00
Olly Betts
5156ad4f7b Remove unnecessary NULL check
SWIG_remove() calls either free() or delete, both of which handle
a NULL pointer.
2021-03-29 17:45:03 +13:00
Olly Betts
979d48b0b4 Remove obsolete FIXME
We no longer have the PHP code wrappers.
2021-03-29 17:41:01 +13:00
Olly Betts
3f1286ba4f Use standard SWIG overload dispatch
Instead of having a slightly modified PHP-specific variant of
Swig_overload_dispatch we now advance the ParmList over the this
pointer.
2021-03-29 17:41:01 +13:00
Olly Betts
7142acbf93 Fix whitespace oddities 2021-03-29 17:29:59 +13:00
Olly Betts
0e7d6a4c8d More PHP8 compatibility fixes 2021-03-29 09:37:44 +13:00
Olly Betts
73a149200f Remove more code which is no longer used 2021-03-28 19:47:16 +13:00
Olly Betts
1c5573d0d0 Remove code which is no longer used 2021-03-28 08:54:24 +13:00
Olly Betts
c58149bc45 Simplify printing code a little
Remove unused Printf parameter, and use Printv where it's more readable.
2021-03-27 19:59:30 +13:00
Olly Betts
dfa5353f27 Eliminate extras hash table
This was used to store custom properties, but we can just ask the PHP
object to store them like it normally would, after checking for our
custom pseudo-properties.
2021-03-27 19:57:37 +13:00
Olly Betts
799cb68a8a Use ZEND_THIS instead of getThis()
getThis(z) checks that z is a PHP object and returns ZEND_THIS if it
is, and NULL otherwise.  In all our uses we know that z is a PHP object
(and we'd try to dereference NULL if it were returned!)
2021-03-27 19:51:24 +13:00
Olly Betts
232308b494 Drop unnecessary casts to swig_object_wrapper* 2021-03-27 19:49:49 +13:00
Olly Betts
c03679acef Improve how we allocate swig_object_wrapper
Use zend_object_alloc() and put the zend_object member last so that
Zend can put object properties after it.
2021-03-26 17:15:34 +13:00
Olly Betts
4aff93942a Improve arginfo generation
Fixes some failing examples and testcases.
2021-03-26 15:34:29 +13:00
Olly Betts
f77113ea71 php: Eliminate SWIG_ZEND_NAMED_FE
It existed to work around const-correctness issues in older versions of
PHP's C API.  It's conceivable user code might be using it, but unlikely
and the switch to creating classes via the API is a natural time for a
compatibility break.
2021-03-26 13:58:02 +13:00
Olly Betts
2ba0f82720 Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-03-26 12:00:59 +13:00
Olly Betts
b840911410 Remove outdated FIXME/TODO from php.cxx
See #1529
2021-03-26 11:18:07 +13:00
Olly Betts
8ded9d8dae Merge branch 'master' into gsoc2017-php7-classes-via-c-api 2021-03-25 17:45:17 +13:00
Olly Betts
d15fe23c5f Merge branch 'gsoc2017-php7-classes-via-c-api' of https://github.com/nihal95/swig into gsoc2017-php7-classes-via-c-api 2021-03-25 16:25:33 +13:00
William S Fulton
90cdbee6a6 Python -builtin fix wrapping constructors with varargs
Fix compilation error when using -builtin and wrapping varargs in constructors

Closes #1942
2021-03-23 23:57:49 +00:00
Olly Betts
786efd0ae0 Eliminate irrelevant formatting differences from master 2021-03-24 11:59:25 +13:00
Olly Betts
3584c7d49c Add initial support for PHP8
Testcase director_overload2 is failing, but the rest of the testsuite
passes.
2021-03-19 19:30:27 +13:00
Olly Betts
2e7da86b2c php: Fix overloaded directed methods with non-void return
We were treating  such methods like constructors and assigning to the
internal _cPtr, which just seems bizarrely wrong.

Fixes #1900
2021-03-18 10:58:44 +13:00
Michel Zou
ee8d47cec4 Fix few unused variable warnings 2021-03-07 11:20:31 +00:00