Hello Johannes, Friday, February 18, 2005, 2:17:12 PM, you wrote:
JS> this patch doesn't just check wether the string has the right syntax but JS> also compiles it and registers it's functions and classes in the relevant JS> tables. well, they need to add this code to avoid it: n_old_func = zend_hash_num_elements(CG(function_table)); n_old_class = zend_hash_num_elements(CG(class_table)); /* actual compile code */ op_array = ... /* free opcode array */ #ifdef ZEND_ENGINE_2 destroy_op_array(op_array TSRMLS_CC); #else destroy_op_array(op_array); #endif efree(op_array); /* clean-up created functions */ i = 0; zend_hash_internal_pointer_reset_ex(CG(function_table), &pos); while (zend_hash_get_current_data_ex(CG(function_table), (void **)&zf, &pos) == SUCCESS) { i++; if (i > n_old_func && zf->type == ZEND_USER_FUNCTION) { zend_hash_del(CG(function_table), pos->arKey, pos->nKeyLength); } zend_hash_move_forward_ex(CG(function_table), &pos); } /* clean-up created classes */ i = 0; zend_hash_internal_pointer_reset_ex(CG(class_table), &pos); while (zend_hash_get_current_data_ex(CG(class_table), (void **)&zc, &pos) == SUCCESS) { #ifdef ZEND_ENGINE_2 zc = *((zend_class_entry**)zc); #endif i++; if (i > n_old_class && zc->type == ZEND_USER_CLASS) { zend_hash_del(CG(class_table), pos->arKey, pos->nKeyLength); } zend_hash_move_forward_ex(CG(class_table), &pos); } -- Best regards, val mailto:[EMAIL PROTECTED] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php