Revert to call_user_function() for PHP 7
zend_call_known_instance_method() was new in PHP 8.0.
This commit is contained in:
parent
5bd38004c9
commit
a80dad0369
1 changed files with 9 additions and 0 deletions
|
|
@ -2229,6 +2229,14 @@ public:
|
|||
|
||||
const char * funcname = GetChar(n, "sym:name");
|
||||
Append(w->code, "{\n");
|
||||
Append(w->code, "#if PHP_MAJOR_VERSION < 8\n");
|
||||
Printf(w->code, "zval swig_funcname;\n");
|
||||
Printf(w->code, "ZVAL_STRINGL(&swig_funcname, \"%s\", %d);\n", funcname, strlen(funcname));
|
||||
if (error_used_in_typemap) {
|
||||
Append(w->code, "error = ");
|
||||
}
|
||||
Printf(w->code, "call_user_function(EG(function_table), &swig_self, &swig_funcname, &swig_zval_result, %d, args);\n", idx);
|
||||
Append(w->code, "#else\n");
|
||||
Printf(w->code, "zend_string *swig_funcname = zend_string_init(\"%s\", %d, 0);\n", funcname, strlen(funcname));
|
||||
Append(w->code, "zend_function *swig_zend_func = zend_std_get_method(&Z_OBJ(swig_self), swig_funcname, NULL);\n");
|
||||
Append(w->code, "zend_string_release(swig_funcname);\n");
|
||||
|
|
@ -2236,6 +2244,7 @@ public:
|
|||
if (error_used_in_typemap) {
|
||||
Append(w->code, "else error = FAILURE;\n");
|
||||
}
|
||||
Append(w->code, "#endif\n");
|
||||
Append(w->code, "}\n");
|
||||
|
||||
if (tm) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue