Merge branch 'gsoc2017-php7-classes-via-c-api' of https://github.com/nihal95/swig into gsoc2017-php7-classes-via-c-api
This commit is contained in:
commit
d15fe23c5f
3 changed files with 82 additions and 64 deletions
|
|
@ -99,10 +99,9 @@
|
|||
/* If exit was via exception, PHP NULL is returned so skip the conversion. */
|
||||
if (!EG(exception)) {
|
||||
if ($needNewFlow) {
|
||||
swig_object_wrapper *obj = SWIG_Z_FETCH_OBJ_P(result);
|
||||
tmp = ($&1_ltype) &obj->ptr;
|
||||
tmp = ($&1_ltype) &SWIG_Z_FETCH_OBJ_P(result)->ptr;
|
||||
c_result = *tmp;
|
||||
obj->newobject = 0;
|
||||
SWIG_Z_FETCH_OBJ_P(result)->newobject = 0;
|
||||
} else {
|
||||
if (SWIG_ConvertPtr($input, (void **) &tmp, $&1_descriptor, 0) < 0 || tmp == NULL)
|
||||
SWIG_PHP_Error(E_ERROR, "Type error in argument $argnum of $symname. Expected $&1_descriptor");
|
||||
|
|
@ -146,7 +145,7 @@
|
|||
%typemap(in) SWIGTYPE *const& ($*ltype temp)
|
||||
%{
|
||||
if ($needNewFlow) {
|
||||
void *tempPointer = $obj_value;
|
||||
tempPointer = $obj_value;
|
||||
$1 = ($1_ltype) &tempPointer;
|
||||
} else {
|
||||
if (SWIG_ConvertPtr(&$input, (void **) &temp, $*1_descriptor, 0) < 0) {
|
||||
|
|
|
|||
|
|
@ -261,16 +261,17 @@ SWIG_pack_zval(zval *zv, void *ptr, int userNewObj) {
|
|||
|
||||
static void
|
||||
SWIG_generalize_object(zval *zval_obj, void *ptr, int userNewObj ,swig_type_info *type) {
|
||||
SWIG_pack_zval(zval_obj, ptr, userNewObj);
|
||||
zval tempZval;
|
||||
HashTable *ht = 0;
|
||||
|
||||
HashTable *ht = Z_OBJ_HT_P(zval_obj)->get_properties(zval_obj);
|
||||
SWIG_pack_zval(zval_obj, ptr, userNewObj);
|
||||
ht = Z_OBJ_HT_P(zval_obj)->get_properties(zval_obj);
|
||||
|
||||
if(ht) {
|
||||
zval zv;
|
||||
ZVAL_RES(&zv,zend_register_resource(ptr,*(int *)(type->clientdata)));
|
||||
zend_hash_str_add(ht, "_cPtr", sizeof("_cPtr") - 1, &zv);
|
||||
ZVAL_TRUE(&zv);
|
||||
zend_hash_str_add(ht, "SWIG_classWrapper", sizeof("SWIG_classWrapper") - 1, &zv);
|
||||
ZVAL_RES(&tempZval,zend_register_resource(ptr,*(int *)(type->clientdata)));
|
||||
zend_hash_str_add(ht, "_cPtr", sizeof("_cPtr") - 1, &tempZval);
|
||||
ZVAL_TRUE(&tempZval);
|
||||
zend_hash_str_add(ht, "SWIG_classWrapper", sizeof("SWIG_classWrapper") - 1, &tempZval);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue