| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
Previously the zend_class_entry for Foo was named SWIGTYPE_Foo_ce, but
this can collide in some cases - e.g. if there's a class named p_Foo
then its zend_class entry will be SWIGTYPE_p_Foo_ce, but that's the same
as the swig_type_info for a class named p_Foo_ce.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Do more initialisation at module load time.
Use a shared set of handlers for cases when the C/C++ object is
destroyed with free().
Most of the code in the free_obj and create_object handlers is the
same for every wrapped class so factor that out into common functions.
|
| |
|
|
|
|
|
| |
We shouldn't be using symbols starting `php` as that risks collisions
with future symbols defined by PHP.
|
| |
|
| |
|
|
|
|
|
|
| |
The only functional change is that we now recover after
WARN_TYPEMAP_IN_UNDEF better (or at least like most of the other
SWIG backends do).
|
| |
|
|
|
|
| |
We no longer wrap anything as a PHP resource.
|
|
|
|
| |
These are leftovers from the work on wrapping using only PHP's C API.
|
|
|
|
|
| |
SWIG_module_entry hasn't actually been used for any of git history
which is over 19 years.
|
|
|
|
|
|
|
| |
If there's a destructor, use its action instead of free(ptr)
(for C)/delete ptr (for C++).
Fixes #2108
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`SWIG_ErrorCode()`, `SWIG_ErrorMsg()`, `SWIG_FAIL()` and `goto thrown;`
are no longer supported (these are really all internal implementation
details and none are documented aside from brief mentions in CHANGES
for the first three). I wasn't able to find any uses at least in FOSS
code via code search tools.
If you are using these:
Use `SWIG_PHP_Error(code,msg);` instead of `SWIG_ErrorCode(code);
SWIG_ErrorMsg(msg);` (which will throw a PHP exception in SWIG >= 4.1
and do the same as the individual calls in older SWIG).
`SWIG_FAIL();` and `goto thrown;` can typically be replaced with
`SWIG_fail;`. This will probably also work with older SWIG, but
please test with your wrappers if this is important to you.
Fixes #2014
|
|
|
|
|
|
|
|
| |
Parameter type errors and some other cases in SWIG-generated wrappers
now throw a PHP exception, which is how PHP's native parameter handling
deals with similar situations.
See #2014, but not closing yet as there may be more cases to convert.
|
|
|
|
|
|
|
|
|
|
|
| |
Most pre-defined interfaces are accessible via zend_class_entry*
variables declared in the PHP C API - we can use these to add
an interface at MINIT time (rather than having to wait until RINIT to
look up by name) by having a mapping from PHP interface name to them.
This will also be a little faster than looking up by name.
Closes #2013
|
|
|
|
|
|
| |
The underlying wrapper function is now always named using
ZEND_NAMED_FUNCTION even if it's a method (in PHP a function and
a method only differ in how they're used).
|
|
|
|
|
| |
The calls to the parent class' magic __get, __set and __isset methods
weren't getting the prefix.
|
|
|
|
|
|
|
|
| |
Eliminate redundant and unused includes.
Only include the minimum headers needed before the PHP_MAJOR_VERSION
check in case future PHP versions remove some of the headers we
include.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It's now only generated if something to put in it is specified via:
%pragma(php) include=...
or
%pragma(php) code=...
|
|
|
|
|
| |
We can't safely lookup the Exception class entry at MINIT time, but we
can just use zend_ce_exception instead, which will be a bit faster too.
|
|
|
|
|
|
|
| |
This has been in the code for a really long time, and doesn't seem
to be required now. It's not documented by PHP as something we
need to do, and the value seems to always be NULL at this point
already.
|
|
|
|
|
|
|
|
| |
With modern PHP it only works with the CLI version of PHP, so it's
better to direct users to load the extension via "extension=" in
php.ini.
Suggested by ferdynator in #1529.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| |
| | |
If has_destructor isn't set then the default zend_object_std_dtor
does everything necessary.
|
| | |
|
| |
| |
| |
| |
| |
| | |
A PHP exception now gets translated to a C++ exception to skips over C++
code to get back to PHP, avoiding the need to gate every directorout
typemap on EG(exception).
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
It's just a local variable, so no need to carefully name it after
the class.
|
| |
| |
| |
| | |
The parameter is a general pointer, not necessarily a zval.
|
| |
| |
| |
| |
| | |
$needNewFlow is now only used for a different hack in a directorout
typemap.
|
| |
| |
| |
| | |
We shouldn't be freeing the property name here.
|
| | |
|
| |
| |
| |
| | |
Pointer to member is currently still wrapped as a resource.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Previously we checked for a <varname>_get() method instead, but that
will misfire for an method actually called foo_get() in the C++ API
being wrapped.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This isn't really workable since PHP doesn't support intercepting
accesses to global variables (nor to static class properties, so
we can't wrap C/C++ global variables that way either).
The _get() and _set() function wrappers actually work and have
been generated for a very long time.
|
| |
| |
| |
| |
| |
| |
| | |
These were deprecated nearly 20 years ago and attempts to use them
have generated a deprecation warning for most of that time.
Addresses #1984 for PHP.
|
| | |
|