fixed #42, conflict between xcache sandbox and user error handler
git-svn-id: svn://svn.lighttpd.net/xcache/trunk@209 c26eb9a1-5813-0410-bd6c-c2e55f420ca71.2
parent
6bace26ff4
commit
ade8255b0a
11
utils.c
11
utils.c
|
@ -396,6 +396,11 @@ xc_sandbox_t *xc_sandbox_init(xc_sandbox_t *sandbox, char *filename TSRMLS_DC) /
|
|||
|
||||
sandbox->filename = filename;
|
||||
|
||||
#ifdef E_STRICT
|
||||
sandbox->orig_user_error_handler_error_reporting = EG(user_error_handler_error_reporting);
|
||||
EG(user_error_handler_error_reporting) &= ~E_STRICT;
|
||||
#endif
|
||||
|
||||
return sandbox;
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -427,7 +432,7 @@ static void xc_sandbox_install(xc_sandbox_t *sandbox TSRMLS_DC) /* {{{ */
|
|||
b = TG(class_table).pListHead;
|
||||
/* install class */
|
||||
while (b != NULL) {
|
||||
xc_install_class(sandbox->filename, (xc_cest_t*)b->pData,
|
||||
xc_install_class(sandbox->filename, (xc_cest_t*) b->pData, -1,
|
||||
BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength TSRMLS_CC);
|
||||
b = b->pListNext;
|
||||
}
|
||||
|
@ -468,6 +473,10 @@ void xc_sandbox_free(xc_sandbox_t *sandbox, int install TSRMLS_DC) /* {{{ */
|
|||
/* restore orig here, as EG/CG holded tmp before */
|
||||
memcpy(&EG(included_files), &OG(included_files), sizeof(EG(included_files)));
|
||||
|
||||
#ifdef E_STRICT
|
||||
EG(user_error_handler_error_reporting) = sandbox->orig_user_error_handler_error_reporting;
|
||||
#endif
|
||||
|
||||
if (sandbox->alloc) {
|
||||
efree(sandbox);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue