1
0
Fork 0

compatible with "the ionCube PHP Loader"

git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1163 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
This commit is contained in:
Xuefer 2012-11-06 02:41:16 +00:00
parent aa536223c3
commit dc3a352d3d
3 changed files with 14 additions and 6 deletions

View File

@ -2,6 +2,7 @@
ChangeLog
========
* fixed #290: workaround phpize vs fbsd make bug again
* compatible with "the ionCube PHP Loader"
3.0.0 2012-10-29
API Changes

1
NEWS
View File

@ -2,6 +2,7 @@
ChangeLog
========
* bug fixes
* compatible with "the ionCube PHP Loader"
3.0.0 2012-10-29
========

View File

@ -560,7 +560,8 @@ typedef struct {
startup_func_t old_startup;
} xc_incompatible_zend_extension_info_t;
static xc_incompatible_zend_extension_info_t xc_incompatible_zend_extensions[] = {
{ "Zend Optimizer", NULL }
{ "Zend Optimizer", NULL },
{ "the ionCube PHP Loader", NULL }
};
static xc_incompatible_zend_extension_info_t *xc_get_incompatible_zend_extension_info(const char *name)
@ -583,23 +584,28 @@ static int xc_incompatible_zend_extension_startup_hook(zend_extension *extension
int status;
zend_bool catched = 0;
zend_llist old_zend_extensions = zend_extensions;
TSRMLS_FETCH();
/* hide all extensions from it */
zend_extensions.head = NULL;
zend_extensions.count = 0;
/* restore */
extension->startup = incompatible_zend_extension_info->old_startup;
incompatible_zend_extension_info->old_startup = NULL;
assert(extension->startup);
/* hide all extensions from it */
zend_extensions.head = NULL;
zend_extensions.tail = NULL;
zend_extensions.count = 0;
zend_extensions.dtor = NULL;
zend_llist_add_element(&zend_extensions, extension);
extension = zend_get_extension(extension->name);
assert(extension->startup != xc_incompatible_zend_extension_startup_hook);
zend_try {
status = extension->startup(extension);
} zend_catch {
catched = 1;
} zend_end_try();
/* restore */
zend_extensions = old_zend_extensions;
if (catched) {
zend_bailout();