Refactor Code and Support phpinterfaces, factory dispatch
- rewire return of type SWIGTYPE
- {NULL, NULL, NULL} to ZEND_FE_END
- feature:warnfilter - 462 of missing setter
- refactor code of return type (replaced)
- support conversion_operator
This commit is contained in:
parent
67fb198b73
commit
a930743932
4 changed files with 125 additions and 53 deletions
|
|
@ -95,7 +95,15 @@ if (!dcast) {
|
|||
Type *dobj = dynamic_cast<Type *>($1);
|
||||
if (dobj) {
|
||||
dcast = 1;
|
||||
SWIG_SetPointerZval(return_value, SWIG_as_voidptr(dobj),$descriptor(Type *), $owner);
|
||||
zend_object *std = NULL;
|
||||
if ($newobj) {
|
||||
zend_class_entry *ce = zend_lookup_class(zend_string_init("Type", sizeof("Type")-1, 0));
|
||||
std = ce->create_object(ce);
|
||||
}
|
||||
else {
|
||||
std = $zend_obj;
|
||||
}
|
||||
SWIG_SetZval(return_value, $newobj , $c_obj, SWIG_as_voidptr(dobj), $descriptor(Type *), std);
|
||||
}
|
||||
}%enddef
|
||||
|
||||
|
|
@ -104,6 +112,6 @@ if (!dcast) {
|
|||
int dcast = 0;
|
||||
%formacro(%_factory_dispatch, Types)
|
||||
if (!dcast) {
|
||||
SWIG_SetPointerZval(return_value, SWIG_as_voidptr($1),$descriptor, $owner);
|
||||
SWIG_SetZval(return_value, $newobj , $c_obj, SWIG_as_voidptr($1), $descriptor, $zend_obj);
|
||||
}
|
||||
}%enddef
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue