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:
parent
aa536223c3
commit
dc3a352d3d
|
@ -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
1
NEWS
|
@ -2,6 +2,7 @@
|
|||
ChangeLog
|
||||
========
|
||||
* bug fixes
|
||||
* compatible with "the ionCube PHP Loader"
|
||||
|
||||
3.0.0 2012-10-29
|
||||
========
|
||||
|
|
18
xcache.c
18
xcache.c
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue