diff options
Diffstat (limited to 'www/eaccelerator')
-rw-r--r-- | www/eaccelerator/Makefile | 3 | ||||
-rw-r--r-- | www/eaccelerator/distinfo | 6 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-content.c | 16 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-debug.c | 12 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-ea_restore.c | 216 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-ea_restore.h | 10 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-ea_store.c | 104 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-eaccelerator.c | 142 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-eaccelerator.h | 124 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-loader.c | 13 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-opcodes.c | 113 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-optimize.c | 217 | ||||
-rw-r--r-- | www/eaccelerator/files/patch-webui.c | 204 |
13 files changed, 4 insertions, 1176 deletions
diff --git a/www/eaccelerator/Makefile b/www/eaccelerator/Makefile index c56084d..14c50fc 100644 --- a/www/eaccelerator/Makefile +++ b/www/eaccelerator/Makefile @@ -6,8 +6,7 @@ # PORTNAME= eaccelerator -DISTVERSION= 0.9.4-rc1 -PORTREVISION= 2 +DISTVERSION= 0.9.5-beta1 CATEGORIES= www MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED} MASTER_SITE_SUBDIR= ${PORTNAME} diff --git a/www/eaccelerator/distinfo b/www/eaccelerator/distinfo index b2f6277..e383309 100644 --- a/www/eaccelerator/distinfo +++ b/www/eaccelerator/distinfo @@ -1,3 +1,3 @@ -MD5 (eaccelerator-0.9.4-rc1.tar.bz2) = 5910ba3c3e9c8caa97600e950839f8b2 -SHA256 (eaccelerator-0.9.4-rc1.tar.bz2) = 4f20aa2197a0e484bea57a3f6183a172207a65003927c4ecea9449eb6af538ed -SIZE (eaccelerator-0.9.4-rc1.tar.bz2) = 104703 +MD5 (eaccelerator-0.9.5-beta1.tar.bz2) = 29f68a5975c1a09dbd72c9e8ddd534a7 +SHA256 (eaccelerator-0.9.5-beta1.tar.bz2) = f55781080ca48ba6d907c8101cf188987844a86d776c95b4f12dff2842d3f9d2 +SIZE (eaccelerator-0.9.5-beta1.tar.bz2) = 109878 diff --git a/www/eaccelerator/files/patch-content.c b/www/eaccelerator/files/patch-content.c deleted file mode 100644 index 9cc4057..0000000 --- a/www/eaccelerator/files/patch-content.c +++ /dev/null @@ -1,16 +0,0 @@ ---- content.c.orig Sun Jul 10 10:12:33 2005 -+++ content.c Thu Feb 2 09:40:00 2006 -@@ -593,10 +593,13 @@ PHP_FUNCTION(eaccelerator_cache_result) - if (zend_eval_string(code, return_value, eval_name TSRMLS_CC) == SUCCESS && - eaccelerator_content_cache_place != eaccelerator_none) { - -+#ifndef ZEND_ENGINE_2_1 -+/* No worko on php >= 5.1.0 */ - /* clean garbage */ - while (EG(garbage_ptr)) { - zval_ptr_dtor(&EG(garbage)[--EG(garbage_ptr)]); - } -+#endif - - eaccelerator_put(key, key_len, return_value, ttl, eaccelerator_content_cache_place TSRMLS_CC); - } diff --git a/www/eaccelerator/files/patch-debug.c b/www/eaccelerator/files/patch-debug.c deleted file mode 100644 index 3ac4dc0..0000000 --- a/www/eaccelerator/files/patch-debug.c +++ /dev/null @@ -1,12 +0,0 @@ ---- debug.c.orig Sun Jul 10 10:12:33 2005 -+++ debug.c Thu Feb 2 09:40:00 2006 -@@ -66,7 +66,8 @@ void ea_debug_init (TSRMLS_D) - void ea_debug_shutdown () - { - fflush (F_fp); -- fclose (F_fp); -+ if (F_fp != stderr) -+ fclose (F_fp); - F_fp = NULL; - } - diff --git a/www/eaccelerator/files/patch-ea_restore.c b/www/eaccelerator/files/patch-ea_restore.c deleted file mode 100644 index 1bef2b7..0000000 --- a/www/eaccelerator/files/patch-ea_restore.c +++ /dev/null @@ -1,216 +0,0 @@ ---- ea_restore.c.orig Wed Aug 3 20:54:32 2005 -+++ ea_restore.c Thu Feb 2 09:40:00 2006 -@@ -39,6 +39,9 @@ - #include "zend.h" - #include "zend_API.h" - #include "zend_extensions.h" -+#ifdef ZEND_ENGINE_2_1 -+#include "zend_vm.h" -+#endif - - #ifndef INCOMPLETE_CLASS - # define INCOMPLETE_CLASS "__PHP_Incomplete_Class" -@@ -69,12 +72,16 @@ dtor_func_t get_zend_destroy_property_in - property_dtor = dummy_class_entry.properties_info.pDestructor; - - zend_hash_destroy(&dummy_class_entry.default_properties); -- zend_hash_destroy(&dummy_class_entry.properties_info); -- zend_hash_destroy(dummy_class_entry.static_members); - zend_hash_destroy(&dummy_class_entry.function_table); -- FREE_HASHTABLE(dummy_class_entry.static_members); - zend_hash_destroy(&dummy_class_entry.constants_table); -- -+ zend_hash_destroy(&dummy_class_entry.properties_info); -+# ifdef ZEND_ENGINE_2_1 -+ zend_hash_destroy(&dummy_class_entry.default_static_members); -+# endif -+# if defined(ZEND_ENGINE_2) && !defined(ZEND_ENGINE_2_1) -+ zend_hash_destroy(dummy_class_entry.static_members); -+ FREE_HASHTABLE(dummy_class_entry.static_members); -+# endif - return property_dtor; - } - #endif -@@ -92,6 +99,9 @@ typedef void (*fixup_bucket_t) (void *TS - static void fixup_property_info(zend_property_info * from TSRMLS_DC) - { - FIXUP(from->name); -+#ifdef ZEND_ENGINE_2_1 -+ FIXUP(from->doc_comment); -+#endif - } - #endif - -@@ -221,7 +231,12 @@ void fixup_op_array(eaccelerator_op_arra - FIXUP(opline->op2.u.jmp_addr); - break; - } -+# ifdef ZEND_ENGINE_2_1 -+ ZEND_VM_SET_OPCODE_HANDLER(opline); -+# else - opline->handler = get_opcode_handler(opline->opcode TSRMLS_CC); -+# endif -+ - #endif - } - EAG(compress) = 1; -@@ -234,6 +249,15 @@ void fixup_op_array(eaccelerator_op_arra - FIXUP(from->static_variables); - fixup_zval_hash(from->static_variables); - } -+#ifdef ZEND_ENGINE_2_1 -+ if (from->vars != NULL) { -+ zend_uint i; -+ FIXUP(from->vars); -+ for (i = 0; i < from->last_var; i++) { -+ FIXUP(from->vars[i].name); -+ } -+ } -+#endif - FIXUP(from->filename); - #ifdef ZEND_ENGINE_2 - FIXUP(from->doc_comment); -@@ -255,6 +279,9 @@ void fixup_class_entry(eaccelerator_clas - FIXUP(from->static_members); - fixup_zval_hash(from->static_members); - } -+# ifdef ZEND_ENGINE_2_1 -+ fixup_zval_hash(&from->default_static_members); -+# endif - #else - fixup_zval_hash(&from->default_properties); - #endif -@@ -570,12 +597,12 @@ zend_op_array *restore_op_array(zend_op_ - to->T = from->T; - to->brk_cont_array = from->brk_cont_array; - to->last_brk_cont = from->last_brk_cont; -- /* -+ - to->current_brk_cont = -1; - to->static_variables = from->static_variables; -- to->start_op = to->opcodes; -+/* to->start_op = to->opcodes; */ - to->backpatch_count = 0; -- */ -+ - to->return_reference = from->return_reference; - to->done_pass_two = 1; - to->filename = from->filename; -@@ -612,6 +639,20 @@ zend_op_array *restore_op_array(zend_op_ - #endif - } - -+#ifdef ZEND_ENGINE_2_1 -+ to->vars = from->vars; -+ to->last_var = from->last_var; -+ to->size_var = 0; -+ if (to->vars) { -+ zend_uint i; -+ to->vars = (zend_compiled_variable*)emalloc(from->last_var*sizeof(zend_compiled_variable)); -+ memcpy(to->vars, from->vars, sizeof(zend_compiled_variable) * from->last_var); -+ for (i = 0; i < from->last_var; i ++) { -+ to->vars[i].name = estrndup(from->vars[i].name, from->vars[i].name_len); -+ } -+ } -+#endif -+ - /* disable deletion in destroy_op_array */ - ++EAG(refcount_helper); - to->refcount = &EAG(refcount_helper); -@@ -633,6 +674,12 @@ static zend_property_info *restore_prope - memcpy(to, from, sizeof(zend_property_info)); - to->name = emalloc(from->name_length + 1); - memcpy(to->name, from->name, from->name_length + 1); -+#ifdef ZEND_ENGINE_2_1 -+ if (from->doc_comment != NULL) { -+ to->doc_comment = emalloc(from->doc_comment_len+1); -+ memcpy(to->doc_comment, from->doc_comment, from->doc_comment_len+1); -+ } -+#endif - return to; - } - #endif -@@ -660,6 +707,12 @@ void restore_class_parent(char *parent, - to->clone = to->parent->clone; - to->__get = to->parent->__get; - to->__set = to->parent->__set; -+# ifdef ZEND_ENGINE_2_1 -+ to->__unset = to->parent->__unset; -+ to->__isset = to->parent->__isset; -+ to->serialize_func = to->parent->serialize_func; -+ to->unserialize_func = to->parent->unserialize_func; -+# endif - to->__call = to->parent->__call; - to->create_object = to->parent->create_object; - #else -@@ -708,6 +761,14 @@ void restore_class_methods(zend_class_en - else if (fname_len == sizeof(ZEND_SET_FUNC_NAME) - 1 && - memcmp(fname_lc, ZEND_SET_FUNC_NAME, sizeof(ZEND_SET_FUNC_NAME)) == 0) - to->__set = f; -+# ifdef ZEND_ENGINE_2_1 -+ else if (fname_len == sizeof(ZEND_UNSET_FUNC_NAME) - 1 && -+ memcmp(fname_lc, ZEND_UNSET_FUNC_NAME, sizeof(ZEND_UNSET_FUNC_NAME)) == 0) -+ to->__unset = f; -+ else if (fname_len == sizeof(ZEND_ISSET_FUNC_NAME) - 1 && -+ memcmp(fname_lc, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME)) == 0) -+ to->__isset = f; -+# endif - else if (fname_len == sizeof(ZEND_CALL_FUNC_NAME) - 1 && - memcmp(fname_lc, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)) == 0) - to->__call = f; -@@ -734,11 +795,10 @@ zend_class_entry *restore_class_entry(ze - #endif - - ea_debug_pad(EA_DEBUG TSRMLS_CC); -- ea_debug_printf(EA_DEBUG, "[%d] retore_class_entry: %s\n", getpid(), from->name ? from->name : "(top)"); -+ ea_debug_printf(EA_DEBUG, "[%d] restore_class_entry: %s\n", getpid(), from->name ? from->name : "(top)"); - #ifdef DEBUG - EAG(xpad)++; - #endif -- - if (to == NULL) { - to = emalloc(sizeof(zend_class_entry)); - } -@@ -752,9 +812,6 @@ zend_class_entry *restore_class_entry(ze - */ - #ifdef ZEND_ENGINE_2 - to->ce_flags = from->ce_flags; -- /* -- to->static_members = NULL; -- */ - to->num_interfaces = from->num_interfaces; - if (to->num_interfaces > 0) { - to->interfaces = (zend_class_entry **) emalloc(sizeof(zend_class_entry *) * to->num_interfaces); -@@ -765,6 +822,7 @@ zend_class_entry *restore_class_entry(ze - } - - to->iterator_funcs = from->iterator_funcs; -+ to->create_object = from->create_object; - to->get_iterator = from->get_iterator; - to->interface_gets_implemented = from->interface_gets_implemented; - #endif -@@ -813,16 +871,19 @@ zend_class_entry *restore_class_entry(ze - (restore_bucket_t) restore_property_info TSRMLS_CC); - to->properties_info.pDestructor = properties_info_dtor; - -+# ifdef ZEND_ENGINE_2_1 -+ /* restore default_static_members */ -+ restore_zval_hash(&to->default_static_members, &from->default_static_members); -+ to->default_static_members.pDestructor = ZVAL_PTR_DTOR; -+ -+ to->static_members = (from->type == ZEND_INTERNAL_CLASS) ? NULL : &to->default_static_members; -+# else - if (from->static_members != NULL) { - ALLOC_HASHTABLE(to->static_members); - restore_zval_hash(to->static_members, from->static_members); - to->static_members->pDestructor = ZVAL_PTR_DTOR; -- /* -- } else { -- ALLOC_HASHTABLE(to->static_members); -- zend_hash_init_ex(to->static_members, 0, NULL, ZVAL_PTR_DTOR, 0, 0); -- */ - } -+# endif - #else - to->refcount = emalloc(sizeof(*to->refcount)); - *to->refcount = 1; diff --git a/www/eaccelerator/files/patch-ea_restore.h b/www/eaccelerator/files/patch-ea_restore.h deleted file mode 100644 index 3b7304f..0000000 --- a/www/eaccelerator/files/patch-ea_restore.h +++ /dev/null @@ -1,10 +0,0 @@ ---- ea_restore.h.orig Mon Jul 11 19:25:38 2005 -+++ ea_restore.h Thu Feb 2 09:40:00 2006 -@@ -34,6 +34,7 @@ - void fixup_op_array (eaccelerator_op_array * from TSRMLS_DC); - void fixup_class_entry (eaccelerator_class_entry * from TSRMLS_DC); - -+void restore_zval(zval * zv TSRMLS_DC); - void restore_class(mm_fc_entry *p TSRMLS_DC); - void restore_function(mm_fc_entry *p TSRMLS_DC); - zend_op_array* restore_op_array(zend_op_array *to, eaccelerator_op_array *from TSRMLS_DC); diff --git a/www/eaccelerator/files/patch-ea_store.c b/www/eaccelerator/files/patch-ea_store.c deleted file mode 100644 index 1f9c5da..0000000 --- a/www/eaccelerator/files/patch-ea_store.c +++ /dev/null @@ -1,104 +0,0 @@ ---- ea_store.c.orig Mon Jul 11 19:25:38 2005 -+++ ea_store.c Thu Feb 2 09:40:00 2006 -@@ -82,6 +82,11 @@ static void calc_property_info(zend_prop - EACCELERATOR_ALIGN(EAG(mem)); - EAG(mem) += sizeof(zend_property_info); - calc_string(from->name, from->name_length + 1 TSRMLS_CC); -+#ifdef ZEND_ENGINE_2_1 -+ if (from->doc_comment != NULL) { -+ calc_string(from->doc_comment, from->doc_comment_len + 1 TSRMLS_CC); -+ } -+#endif - } - - /* Calculate the size of a point to a class entry */ -@@ -246,6 +251,16 @@ void calc_op_array(zend_op_array * from - EAG(mem) += sizeof(HashTable); - calc_zval_hash(from->static_variables); - } -+#ifdef ZEND_ENGINE_2_1 -+ if (from->vars != NULL) { -+ zend_uint i; -+ EACCELERATOR_ALIGN(EAG(mem)); -+ EAG(mem) += sizeof(zend_compiled_variable) * from->last_var; -+ for (i = 0; i < from->last_var; i ++) { -+ calc_string(from->vars[i].name, from->vars[i].name_len+1 TSRMLS_CC); -+ } -+ } -+#endif - if (from->filename != NULL) - calc_string(from->filename, strlen(from->filename) + 1 TSRMLS_CC); - #ifdef ZEND_ENGINE_2 -@@ -285,6 +300,11 @@ void calc_class_entry(zend_class_entry * - - calc_zval_hash(&from->constants_table); - calc_zval_hash(&from->default_properties); -+ -+#ifdef ZEND_ENGINE_2_1 -+ calc_zval_hash(&from->default_static_members); -+#endif -+ - calc_hash(&from->properties_info, (calc_bucket_t) calc_property_info); - if (from->static_members != NULL) { - EACCELERATOR_ALIGN(EAG(mem)); -@@ -610,6 +630,10 @@ eaccelerator_op_array *store_op_array(ze - to->uses_globals = from->uses_globals; - #endif - to->static_variables = from->static_variables; -+#ifdef ZEND_ENGINE_2_1 -+ to->vars = from->vars; -+ to->last_var = from->last_var; -+#endif - to->return_reference = from->return_reference; - to->filename = from->filename; - -@@ -671,8 +695,24 @@ eaccelerator_op_array *store_op_array(ze - EAG(mem) += sizeof(HashTable); - store_zval_hash(to->static_variables, from->static_variables); - } -+#ifdef ZEND_ENGINE_2_1 -+ if (from->vars != NULL) { -+ zend_uint i; -+ EACCELERATOR_ALIGN(EAG(mem)); -+ to->last_var = from->last_var; -+ to->vars = (zend_compiled_variable*)EAG(mem); -+ EAG(mem) += sizeof(zend_compiled_variable) * from->last_var; -+ memcpy(to->vars, from->vars, sizeof(zend_compiled_variable) * from->last_var); -+ for (i = 0; i < from->last_var; i ++) { -+ to->vars[i].name = store_string(from->vars[i].name, from->vars[i].name_len+1 TSRMLS_CC); -+ } -+ } else { -+ to->last_var = 0; -+ to->vars = NULL; -+ } -+#endif - if (from->filename != NULL) { -- to->filename = store_string(to->filename, strlen(from->filename) + 1 TSRMLS_CC); -+ to->filename = store_string(from->filename, strlen(from->filename) + 1 TSRMLS_CC); - } - #ifdef ZEND_ENGINE_2 - to->line_start = from->line_start; -@@ -693,6 +733,12 @@ static zend_property_info *store_propert - EAG(mem) += sizeof(zend_property_info); - memcpy(to, from, sizeof(zend_property_info)); - to->name = store_string(from->name, from->name_length + 1 TSRMLS_CC); -+#ifdef ZEND_ENGINE_2_1 -+ to->doc_comment_len = from->doc_comment_len; -+ if (from->doc_comment != NULL) { -+ to->doc_comment = store_string(from->doc_comment, from->doc_comment_len + 1 TSRMLS_CC); -+ } -+#endif - return to; - } - #endif -@@ -770,6 +816,10 @@ eaccelerator_class_entry *store_class_en - } - #else - store_zval_hash(&to->default_properties, &from->default_properties); -+#endif -+ -+#ifdef ZEND_ENGINE_2_1 -+ store_zval_hash(&to->default_static_members, &from->default_static_members); - #endif - store_hash(&to->function_table, &from->function_table, (store_bucket_t) store_op_array); - diff --git a/www/eaccelerator/files/patch-eaccelerator.c b/www/eaccelerator/files/patch-eaccelerator.c deleted file mode 100644 index 90d43d6..0000000 --- a/www/eaccelerator/files/patch-eaccelerator.c +++ /dev/null @@ -1,142 +0,0 @@ ---- eaccelerator.c.orig Sun Nov 20 18:53:43 2005 -+++ eaccelerator.c Thu Feb 2 09:40:00 2006 -@@ -110,6 +110,10 @@ extern dtor_func_t properties_info_dtor; - /* saved original functions */ - static zend_op_array *(*mm_saved_zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC); - -+#ifdef DEBUG -+static void (*mm_saved_zend_execute)(zend_op_array *op_array TSRMLS_DC); -+#endif -+ - /* external declarations */ - PHPAPI void php_stripslashes(char *str, int *len TSRMLS_DC); - -@@ -251,16 +255,16 @@ static void hash_add_mm(mm_cache_entry * - /* check the cache dir */ - static int check_cache_dir(char *cache_dir) { - struct stat buf; -- int uid = 0; -- int gid = 0; -- -+// int uid = 0; -+// int gid = 0; -+ - if (stat(cache_dir, &buf) == -1) { - ea_debug_error("Cache dir does not exist (could not stat %s)\n", cache_dir); -- return 0; -+ return FAILURE; - } - if (!(buf.st_mode & S_IFDIR)) { - ea_debug_error("%s is not a directory!\n", cache_dir); -- return 0; -+ return FAILURE; - } - #if 0 - uid = getuid(); -@@ -272,7 +276,7 @@ static int check_cache_dir(char *cache_d - return 0; - } - #endif -- return 1; -+ return SUCCESS; - } - - /* Initialise the shared memory */ -@@ -326,11 +330,6 @@ static int init_mm(TSRMLS_D) { - eaccelerator_mm_instance->user_hash_cnt = 0; - eaccelerator_mm_instance->last_prune = time(0); - EACCELERATOR_PROTECT(); -- -- if (!check_cache_dir(EAG(cache_dir))) { -- return FAILURE; -- } -- - return SUCCESS; - } - -@@ -847,7 +846,7 @@ static mm_cache_entry *eaccelerator_stor - q = p->c_head; - while (q != NULL) { - #ifdef ZEND_ENGINE_2 -- q->fc = store_class_entry ((zend_class_entry *) q->fc TSRMLS_CC); -+ q->fc = store_class_entry ((zend_class_entry *) q->fc TSRMLS_CC); // hra: exactly the same?! - #else - q->fc = store_class_entry ((zend_class_entry *) q->fc TSRMLS_CC); - #endif -@@ -1131,9 +1130,10 @@ static int eaccelerator_stat(zend_file_h - } - - if (zend_is_executing(TSRMLS_C)) { -+ int tryname_length; - strncpy(tryname, zend_get_executed_filename(TSRMLS_C), MAXPATHLEN); - tryname[MAXPATHLEN - 1] = 0; -- int tryname_length = strlen(tryname); -+ tryname_length = strlen(tryname); - - while (tryname_length >= 0 && !IS_SLASH(tryname[tryname_length])) - tryname_length--; -@@ -1256,12 +1256,12 @@ ZEND_DLEXPORT zend_op_array* eaccelerato - int nreloads; - time_t compile_time; - int stat_result = 0; -+ struct timeval tv_start; - - #ifdef EACCELERATOR_USE_INODE - realname[0] = '\000'; - #endif - -- struct timeval tv_start; - ea_debug_printf(EA_TEST_PERFORMANCE, "[%d] Enter COMPILE\n",getpid()); - ea_debug_start_time(&tv_start); - ea_debug_printf(EA_DEBUG, "[%d] Enter COMPILE\n",getpid()); -@@ -1565,18 +1565,20 @@ static void profile_execute(zend_op_arra - - for (i=0;i<EAG(profile_level);i++) - ea_debug_put(EA_PROFILE_OPCODES, " "); -- ea_debug_printf(EA_PROFILE_OPCODES, "enter: %s:%s\n", op_array->filename, op_array->function_name); -+ ea_debug_printf(EA_PROFILE_OPCODES, "enter profile_execute: %s:%s\n", op_array->filename, op_array->function_name); - ea_debug_start_time(&tv_start); - EAG(self_time)[EAG(profile_level)] = 0; - EAG(profile_level)++; -+ ea_debug_printf(EA_PROFILE_OPCODES, "About to enter zend_execute...\n"); - mm_saved_zend_execute(op_array TSRMLS_CC); -+ ea_debug_printf(EA_PROFILE_OPCODES, "Finished zend_execute...\n"); - usec = ea_debug_elapsed_time(&tv_start); - EAG(profile_level)--; - if (EAG(profile_level) > 0) - EAG(self_time)[EAG(profile_level)-1] += usec; - for (i=0;i<EAG(profile_level);i++) - ea_debug_put(EA_PROFILE_OPCODES, " "); -- ea_debug_printf(EA_PROFILE_OPCODES, "leave: %s:%s (%ld,%ld)\n", op_array->filename, op_array->function_name, usec, usec-EAG(self_time)[EAG(profile_level)]); -+ ea_debug_printf(EA_PROFILE_OPCODES, "leave profile_execute: %s:%s (%ld,%ld)\n", op_array->filename, op_array->function_name, usec, usec-EAG(self_time)[EAG(profile_level)]); - } - - ZEND_DLEXPORT zend_op_array* profile_compile_file(zend_file_handle *file_handle, int type TSRMLS_DC) { -@@ -1593,7 +1595,7 @@ ZEND_DLEXPORT zend_op_array* profile_com - EAG(self_time)[EAG(profile_level)-1] += usec; - for (i=0;i<EAG(profile_level);i++) - ea_debug_put(EA_PROFILE_OPCODES, " "); -- ea_debug_printf(EA_DEBUG, "compile: %s (%ld)\n", file_handle->filename, usec); -+ ea_debug_printf(EA_DEBUG, "zend_op_array compile: %s (%ld)\n", file_handle->filename, usec); - return t; - } - -@@ -2023,9 +2025,16 @@ PHP_MINIT_FUNCTION(eaccelerator) { - - if (init_mm(TSRMLS_C) == FAILURE) { - zend_error(E_CORE_WARNING,"[%s] Can not create shared memory area", EACCELERATOR_EXTENSION_NAME); -- return FAILURE; -+ /* disable eA */ -+ eaccelerator_mm_instance->enabled = 0; - } -- -+#if 0 -+ if (!eaccelerator_scripts_shm_only && check_cache_dir(EAG(cache_dir)) == FAILURE) { -+ zend_error(E_CORE_WARNING,"[%s] Can not init the cache directory", EACCELERATOR_EXTENSION_NAME); -+ /* disable eA */ -+ eaccelerator_mm_instance->enabled = 0; -+ } -+#endif - mm_saved_zend_compile_file = zend_compile_file; - - #ifdef DEBUG diff --git a/www/eaccelerator/files/patch-eaccelerator.h b/www/eaccelerator/files/patch-eaccelerator.h deleted file mode 100644 index 9e5bd99..0000000 --- a/www/eaccelerator/files/patch-eaccelerator.h +++ /dev/null @@ -1,124 +0,0 @@ ---- eaccelerator.h.orig Mon Jul 11 19:25:38 2005 -+++ eaccelerator.h Thu Feb 2 09:40:00 2006 -@@ -44,6 +44,10 @@ - # endif - #endif - -+#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION >= 1 -+# define ZEND_ENGINE_2_1 -+#endif -+ - /* fixes compile errors on php5.1 */ - #ifdef STR_EMPTY_ALLOC - #define empty_string STR_EMPTY_ALLOC() -@@ -166,12 +170,14 @@ - - #define MAX_DUP_STR_LEN 256 - -+/******************************************************************************/ -+ -+#endif /* HAVE_EACCELERATOR_STANDALONE_LOADER */ -+ - #ifndef offsetof - # define offsetof(str,fld) ((size_t)&(((str*)NULL)->fld)) - #endif - --/******************************************************************************/ -- - typedef struct _eaccelerator_op_array { - zend_uchar type; - #ifdef ZEND_ENGINE_2 -@@ -197,6 +203,10 @@ typedef struct _eaccelerator_op_array { - #endif - zend_op *opcodes; - zend_uint last; -+#ifdef ZEND_ENGINE_2_1 -+ zend_compiled_variable *vars; -+ int last_var; -+#endif - zend_uint T; - zend_brk_cont_element *brk_cont_array; - zend_uint last_brk_cont; -@@ -218,24 +228,29 @@ typedef struct _eaccelerator_class_entry - char type; - char *name; - char *name_lc; -- uint name_length; -+ zend_uint name_length; - char *parent; - HashTable function_table; - HashTable default_properties; - #ifdef ZEND_ENGINE_2 -- zend_uint ce_flags; -- HashTable *static_members; - HashTable properties_info; -+# ifdef ZEND_ENGINE_2_1 -+ HashTable default_static_members; -+# endif -+ HashTable *static_members; - HashTable constants_table; -+ zend_uint ce_flags; - zend_uint num_interfaces; -+ - char **interfaces; - zend_class_iterator_funcs iterator_funcs; - -- zend_object_value (*create_object) (zend_class_entry * -- class_type TSRMLS_DC); -- zend_object_iterator *(*get_iterator) (zend_class_entry * ce, -- zval * object TSRMLS_DC); -- int (*interface_gets_implemented) (zend_class_entry * iface, zend_class_entry * class_type TSRMLS_DC); /* a class implements this interface */ -+ /* handlers */ -+ zend_object_value (*create_object) (zend_class_entry *class_type TSRMLS_DC); -+ zend_object_iterator *(*get_iterator) (zend_class_entry *ce, zval *object TSRMLS_DC); -+ int (*interface_gets_implemented) (zend_class_entry *iface, zend_class_entry *class_type TSRMLS_DC); /* a class implements this interface */ -+ -+ /* hra: serializer callbacks may need to be added here in the future for php 5.1 */ - - char *filename; - zend_uint line_start; -@@ -255,6 +270,8 @@ typedef struct _mm_fc_entry { - char htabkey[1]; /* must be last element */ - } mm_fc_entry; - -+#ifndef HAVE_EACCELERATOR_STANDALONE_LOADER -+ - /* - * A mm_cache_entry is a bucket for one PHP script file. - * Nested functions and classes which defined in the file goes -@@ -381,17 +398,13 @@ void *eaccelerator_malloc2 (size_t size - unsigned int eaccelerator_crc32 (const char *p, size_t n); - int eaccelerator_md5 (char *s, const char *prefix, const char *key TSRMLS_DC); - --void restore_zval (zval * TSRMLS_DC); - void calc_zval (zval * z TSRMLS_DC); - void store_zval (zval * z TSRMLS_DC); - void fixup_zval (zval * z TSRMLS_DC); -+void restore_zval (zval * TSRMLS_DC); - - unsigned int hash_mm(const char *data, int len); - --# ifdef WITH_EACCELERATOR_EXECUTOR --ZEND_DLEXPORT void eaccelerator_execute (zend_op_array * op_array TSRMLS_DC); --# endif -- - # ifdef WITH_EACCELERATOR_OPTIMIZER - void eaccelerator_optimize (zend_op_array * op_array); - # endif -@@ -399,15 +412,13 @@ void eaccelerator_optimize (zend_op_arra - #ifdef WITH_EACCELERATOR_ENCODER - PHP_FUNCTION (eaccelerator_encode); - #endif --#endif /* HAVE_EACCELERATOR_LOADER_STANDALONE */ -+#endif /* HAVE_EACCELERATOR_STANDALONE_LOADER */ - - #ifdef ZTS - # define EAG(v) TSRMG(eaccelerator_globals_id, zend_eaccelerator_globals*, v) - #else - # define EAG(v) (eaccelerator_globals.v) - #endif -- --#define MMCG(v) EAG(v) - - /* - * conditional filter diff --git a/www/eaccelerator/files/patch-loader.c b/www/eaccelerator/files/patch-loader.c deleted file mode 100644 index a0d8d39..0000000 --- a/www/eaccelerator/files/patch-loader.c +++ /dev/null @@ -1,13 +0,0 @@ ---- loader.c.orig Wed Aug 3 20:54:32 2005 -+++ loader.c Thu Feb 2 09:40:00 2006 -@@ -39,6 +39,10 @@ - #include "php.h" - #include "ea_restore.h" - #include <math.h> -+ -+#ifdef HAVE_EACCELERATOR_STANDALONE_LOADER -+zend_extension* ZendOptimizer = NULL; -+#endif - - typedef struct loader_data { - long version; diff --git a/www/eaccelerator/files/patch-opcodes.c b/www/eaccelerator/files/patch-opcodes.c deleted file mode 100644 index ba17fe0..0000000 --- a/www/eaccelerator/files/patch-opcodes.c +++ /dev/null @@ -1,113 +0,0 @@ ---- opcodes.c.orig Mon May 16 11:56:42 2005 -+++ opcodes.c Thu Feb 2 09:40:00 2006 -@@ -43,11 +43,7 @@ - # define OP1_VAR_2 OP1_VAR - #endif - --#ifdef ZEND_ENGINE_2 --# define LAST_OPCODE 149 --#else --# define LAST_OPCODE 106 --#endif -+#define LAST_OPCODE (sizeof(opcodes)/sizeof(opcodes[0])) - - static const opcode_dsc opcodes[] = { - OPDEF("NOP", EXT_UNUSED | OP1_UNUSED | OP2_UNUSED | RES_UNUSED), /* 0 */ -@@ -158,16 +154,20 @@ static const opcode_dsc opcodes[] = { - OPDEF("INIT_ARRAY", EXT_BIT | OP1_STD | OP2_STD | RES_TMP), /* 71 */ - OPDEF("ADD_ARRAY_ELEMENT", EXT_BIT | OP1_STD | OP2_STD | RES_TMP), /* 72 */ - OPDEF("INCLUDE_OR_EVAL", EXT_UNUSED | OP1_STD | OP2_INCLUDE| RES_VAR), /* 73 */ --#ifdef ZEND_ENGINE_2 -+#ifdef ZEND_ENGINE_2_1 -+ /* php 5.1 and up */ - OPDEF("UNSET_VAR", EXT_UNUSED | OP1_STD | OP2_FETCH | RES_UNUSED), /* 74 */ -- OPDEF("UNSET_DIM_OBJ", EXT_STD | OP1_STD | OP2_STD | RES_UNUSED), /* 75 */ -- OPDEF("ISSET_ISEMPTY", EXT_ISSET | OP1_VAR | OP2_UNUSED | RES_TMP), /* 76 */ -+ OPDEF("UNSET_DIM", EXT_STD | OP1_STD | OP2_STD | RES_UNUSED), /* 75 */ -+ OPDEF("UNSET_OBJ", EXT_STD | OP1_STD | OP2_STD | RES_UNUSED), /* 76 */ -+ OPDEF("FE_RESET", EXT_BIT | OP1_STD | OP2_OPLINE | RES_VAR), /* 77 */ - #else -+ /* <= php 5.0 */ -+ /* though there is no ISSET_ISEMPTY in php 5.0 it's better to leave it here i guess */ - OPDEF("UNSET_VAR", EXT_UNUSED | OP1_STD | OP2_UNUSED | RES_UNUSED), /* 74 */ - OPDEF("UNSET_DIM_OBJ", EXT_UNUSED | OP1_VAR | OP2_STD | RES_UNUSED), /* 75 */ - OPDEF("ISSET_ISEMPTY", EXT_UNUSED | OP1_VAR | OP2_ISSET | RES_TMP), /* 76 */ --#endif - OPDEF("FE_RESET", EXT_BIT | OP1_STD | OP2_UNUSED | RES_VAR), /* 77 */ -+#endif - OPDEF("FE_FETCH", EXT_FE | OP1_STD | OP2_OPLINE | RES_TMP), /* 78 */ - OPDEF("EXIT", EXT_UNUSED | OP1_STD | OP2_UNUSED | RES_UNUSED), /* 79 */ - OPDEF("FETCH_R", EXT_UNUSED | OP1_STD | OP2_FETCH | RES_VAR), /* 80 */ -@@ -234,7 +234,7 @@ static const opcode_dsc opcodes[] = { - OPDEF("POST_INC_OBJ", EXT_UNUSED | OP1_STD | OP2_STD | RES_TMP), /* 134 */ - OPDEF("POST_DEC_OBJ", EXT_UNUSED | OP1_STD | OP2_STD | RES_TMP), /* 135 */ - OPDEF("ASSIGN_OBJ", EXT_UNUSED | OP1_STD | OP2_STD | RES_VAR), /* 136 */ -- OPDEF("OP_DATA", EXT_UNUSED | OP1_STD | OP2_STD | RES_UNUSED), /* 137 */ -+ OPDEF("OP_DATA", EXT_UNUSED | OP1_STD | OP2_STD | RES_STD), /* 137 */ - OPDEF("INSTANCEOF", EXT_UNUSED | OP1_STD | OP2_CLASS | RES_TMP), /* 138 */ - OPDEF("DECLARE_CLASS", EXT_UNUSED | OP1_STD | OP2_STD | RES_CLASS), /* 139 */ - OPDEF("DECLARE_INHERITED_CLASS", EXT_CLASS | OP1_STD | OP2_STD | RES_CLASS), /* 140 */ -@@ -245,14 +245,17 @@ static const opcode_dsc opcodes[] = { - OPDEF("VERIFY_INSTANCEOF", EXT_UNUSED | OP1_CLASS | OP2_STD | RES_UNUSED), /* 145 */ - OPDEF("VERIFY_ABSTRACT_CLASS", EXT_UNUSED | OP1_CLASS | OP2_UNUSED | RES_UNUSED), /* 146 */ - OPDEF("ASSIGN_DIM", EXT_UNUSED | OP1_STD | OP2_STD | RES_VAR), /* 147 */ -- - OPDEF("ISSET_ISEMPTY_PROP_OBJ", EXT_ISSET | OP1_STD | OP2_STD | RES_TMP), /* 148 */ - OPDEF("HANDLE_EXCEPTION", EXT_STD | OP1_UNUSED | OP2_UNUSED | RES_STD) /* 149 */ -+# ifdef ZEND_ENGINE_2_1 -+ , -+ OPDEF("USER_OPCODE", EXT_STD | OP1_UNUSED | OP2_UNUSED | RES_STD) /* 150 */ -+# endif - #endif - }; - - const opcode_dsc* get_opcode_dsc(unsigned int n) { -- if (n <= LAST_OPCODE) { -+ if (n < LAST_OPCODE) { - return &opcodes[n]; - } else { - return NULL; -@@ -261,17 +264,17 @@ const opcode_dsc* get_opcode_dsc(unsigne - #endif - - #ifdef ZEND_ENGINE_2 --static opcode_handler_t eaccelerator_opcode_handlers[LAST_OPCODE+1]; -+static opcode_handler_t eaccelerator_opcode_handlers[LAST_OPCODE]; - static int handlers_retrived = 0; - - ZEND_DLEXPORT void retrive_opcode_handlers_handler(zend_op_array *op_array) { - unsigned char i; - efree(op_array->opcodes); -- op_array->opcodes = (zend_op*)emalloc(sizeof(zend_op)*(LAST_OPCODE+1)); -- op_array->last = LAST_OPCODE+1; -- op_array->size = LAST_OPCODE+1; -+ op_array->opcodes = (zend_op*)emalloc(sizeof(zend_op)*(LAST_OPCODE)); -+ op_array->last = LAST_OPCODE; -+ op_array->size = LAST_OPCODE; - op_array->T = 0; -- for (i=0; i<=LAST_OPCODE; i++) { -+ for (i=0; i<LAST_OPCODE; i++) { - op_array->opcodes[i].opcode = i; - op_array->opcodes[i].op1.op_type = IS_UNUSED; - op_array->opcodes[i].op1.u.opline_num = i; -@@ -298,9 +301,9 @@ static int retrive_opcode_handlers(TSRML - ext->op_array_handler = retrive_opcode_handlers_handler; - p = compile_string(&str, empty_string TSRMLS_CC); - ext->op_array_handler = old; -- if (p != NULL && p->last == LAST_OPCODE+1) { -+ if (p != NULL && p->last == (LAST_OPCODE - 1)) { - int i = 0; -- while (i <= LAST_OPCODE) { -+ while (i < LAST_OPCODE) { - eaccelerator_opcode_handlers[p->opcodes[i].opcode] = p->opcodes[i].handler; - ++i; - } -@@ -318,7 +321,7 @@ opcode_handler_t get_opcode_handler(zend - return NULL; - } - } -- if (opcode <= LAST_OPCODE) { -+ if (opcode < LAST_OPCODE) { - return eaccelerator_opcode_handlers[opcode]; - } else { - return (opcode_handler_t) NULL; diff --git a/www/eaccelerator/files/patch-optimize.c b/www/eaccelerator/files/patch-optimize.c deleted file mode 100644 index 52e2286..0000000 --- a/www/eaccelerator/files/patch-optimize.c +++ /dev/null @@ -1,217 +0,0 @@ ---- optimize.c.orig Thu Nov 17 21:25:11 2005 -+++ optimize.c Thu Feb 2 09:40:00 2006 -@@ -64,7 +64,6 @@ typedef struct _BBlink { - struct _BBlink* next; - } BBlink; - --#if 0 - static void dump_bb(BB* bb, zend_op_array *op_array) { - BB* p = bb; - BBlink *q; -@@ -130,7 +129,45 @@ static void dump_bb(BB* bb, zend_op_arra - zend_printf("</pre><hr>\n"); - fflush(stdout); - } --#endif -+ -+static void dump_array(int nb,void *pos,char type) -+{ int j; -+ -+ switch(type) { -+ case 'i': { -+ int *ptr=pos; -+ for (j=0;j<nb;j++) { -+ zend_printf("%d:%6d ",j,*ptr); -+ ptr++; -+ } -+ } -+ break; -+ case 'x': { -+ int *ptr=pos; -+ for (j=0;j<nb;j++) { -+ zend_printf("%d:%x ",j,*ptr); -+ ptr++; -+ } -+ } -+ break; -+ case 'c': { -+ unsigned char *ptr=pos; -+ for (j=0;j<nb;j++) { -+/* if (*ptr>=32 && *ptr<128) zend_printf("%d:%c",j,*ptr); -+ else if (*ptr>=128) zend_printf("%d:%2x",j,*ptr); -+ else if (*ptr<16) zend_printf("%d:&%1x",j,*ptr); -+ else zend_printf("%d:$%1x",j,(*ptr)-16); */ -+ zend_printf("%d:%1x ",j,*ptr); -+ ptr++; -+ } -+ } -+ break; -+ default: -+ for (j=0;j<nb;j++) -+ zend_printf("# "); -+ } -+ zend_printf("<br>\n"); -+} - - #define SET_TO_NOP(op) \ - (op)->opcode = ZEND_NOP; \ -@@ -250,14 +287,27 @@ static void compute_live_var(BB* bb, zen - } - break; - case ZEND_UNSET_VAR: -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_UNSET_DIM_OBJ: - end->result.op_type = IS_UNUSED; - break; -+#else -+ case ZEND_UNSET_DIM: -+ case ZEND_UNSET_OBJ: -+ end->result.op_type = IS_UNUSED; -+ break; -+#endif - case ZEND_RECV: - case ZEND_RECV_INIT: - /*case ZEND_ADD_ARRAY_ELEMENT:*/ - case ZEND_INCLUDE_OR_EVAL: -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_JMP_NO_CTOR: -+#else -+ case ZEND_NEW: -+#endif - case ZEND_FE_FETCH: - #ifdef ZEND_ENGINE_2 - case ZEND_ASSIGN_DIM: -@@ -1279,7 +1329,12 @@ jmp_nz_ex: - goto jmp_nz; - } - goto jmp_2; -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_JMP_NO_CTOR: -+#else -+ case ZEND_NEW: -+#endif - case ZEND_FE_FETCH: - jmp_2: - while (p->jmp_2->len == 1 && p->jmp_2->start->opcode == ZEND_JMP) { -@@ -1714,6 +1769,7 @@ static void optimize_bb(BB* bb, zend_op_ - } - } else - #endif -+ - if ((op->opcode == ZEND_ADD || - op->opcode == ZEND_SUB || - op->opcode == ZEND_MUL || -@@ -2443,7 +2499,13 @@ else if (prev != NULL && - op->opcode == ZEND_DO_FCALL_BY_NAME || - op->opcode == ZEND_POST_INC || - op->opcode == ZEND_POST_DEC || -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - op->opcode == ZEND_UNSET_DIM_OBJ || -+#else -+ op->opcode == ZEND_UNSET_DIM || -+ op->opcode == ZEND_UNSET_OBJ || -+#endif - op->opcode == ZEND_INCLUDE_OR_EVAL - #ifdef ZEND_ENGINE_2 - || op->opcode == ZEND_ASSIGN_DIM -@@ -2721,7 +2783,13 @@ static int build_cfg(zend_op_array *op_a - case ZEND_JMPNZ: - case ZEND_JMPZ_EX: - case ZEND_JMPNZ_EX: -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_JMP_NO_CTOR: -+#else -+ case ZEND_NEW: -+ case ZEND_FE_RESET: -+#endif - case ZEND_FE_FETCH: - bb[line_num+1].start = op+1; - bb[op->op2.u.opline_num].start = &op_array->opcodes[op->op2.u.opline_num]; -@@ -2840,9 +2908,19 @@ cont_failed: - break; - #endif - case ZEND_UNSET_VAR: -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_UNSET_DIM_OBJ: - op->result.op_type = IS_UNUSED; - break; -+#else -+ case ZEND_UNSET_DIM: -+ op->result.op_type = IS_UNUSED; -+ break; -+ case ZEND_UNSET_OBJ: -+ op->result.op_type = IS_UNUSED; -+ break; -+#endif - default: - break; - } -@@ -2894,7 +2972,13 @@ cont_failed: - case ZEND_JMPNZ: - case ZEND_JMPZ_EX: - case ZEND_JMPNZ_EX: -+#ifndef ZEND_ENGINE_2_1 -+/* Pre-PHP 5.1 only */ - case ZEND_JMP_NO_CTOR: -+#else -+ case ZEND_NEW: -+ case ZEND_FE_RESET: -+#endif - case ZEND_FE_FETCH: - p->jmp_2 = &bb[op->op2.u.opline_num]; - p->follow = &bb[line_num]; -@@ -3109,6 +3193,7 @@ void reassign_registers(zend_op_array *o - - while (start < op) { - --op; -+ /* zend_printf("op=%d\n", op-op_array->opcodes); */ - #ifdef ZEND_ENGINE_2 - op_data = NULL; - #else -@@ -3151,20 +3236,6 @@ void reassign_registers(zend_op_array *o - GET_REG(r); - op->extended_value = VAR_VAL(assigned[r]); - } -- if (op->opcode == ZEND_OP_DATA) { -- op_data = op; -- --op; -- if (op->op1.op_type == IS_VAR || op->op1.op_type == IS_TMP_VAR) { -- int r = VAR_NUM(op->op1.u.var); -- GET_REG(r); -- op->op1.u.var = VAR_VAL(assigned[r]); -- } -- if (op->op2.op_type == IS_VAR || op->op2.op_type == IS_TMP_VAR) { -- int r = VAR_NUM(op->op2.u.var); -- GET_REG(r); -- op->op2.u.var = VAR_VAL(assigned[r]); -- } -- } - #endif - if (op->result.op_type == IS_VAR || - op->result.op_type == IS_TMP_VAR) { -@@ -3192,11 +3263,6 @@ void reassign_registers(zend_op_array *o - } - } - } --#ifdef ZEND_ENGINE_2 -- if (op_data != NULL && op_data->op2.op_type == IS_VAR) { -- FREE_REG(VAR_NUM(op_data->op2.u.var)); -- } --#endif - } - } - p = p->next; -@@ -3279,6 +3345,7 @@ void eaccelerator_optimize(zend_op_array - /* Store Optimized Code */ - emit_cfg(op_array, bb); - reassign_registers(op_array, bb, global); -+ /* dump_bb(bb, op_array); */ - - free_alloca(global); - } diff --git a/www/eaccelerator/files/patch-webui.c b/www/eaccelerator/files/patch-webui.c deleted file mode 100644 index 4055627..0000000 --- a/www/eaccelerator/files/patch-webui.c +++ /dev/null @@ -1,204 +0,0 @@ ---- webui.c.orig Sun Jul 10 10:12:33 2005 -+++ webui.c Thu Feb 2 09:40:00 2006 -@@ -263,7 +263,7 @@ static void dump_zval (zval * v, int com - ZEND_PUTS ("constant('"); - goto string_dump; - case IS_CONSTANT_ARRAY: -- ZEND_PUTS ("constatnt_array("); -+ ZEND_PUTS ("constant_array("); - goto array_dump; - default: - zend_printf ("unknown(%d)", v->type); -@@ -271,21 +271,26 @@ static void dump_zval (zval * v, int com - } - - static const char *color_list[] = { -- "#FF0000", -- "#00FF00", -- "#0000FF", -- "#FFFF00", -- "#00FFFF", -- "#FF00FF", -- "#800000", -- "#008000", -- "#000080", -- "#808000", -- "#008080", -- "#800080" -+ /* color from irc */ -+ /* 0 // "#ffffff", white */ -+ /* 1 // "#000000", black */ -+ /* 4 */ "#ff0000", /* light red */ -+ /* 7 */ "#fc7f00", /* orange */ -+ /* 6 */ "#9c009c", /* magenta */ -+ /* 5 */ "#7f0000", /* red */ -+ /* 9 */ "#00fc00", /* light green (lime) */ -+ /* 10 */ "#009393", /* cyan */ -+ /* 12 */ "#0000fc", /* light blue */ -+ /* 13 */ "#ff00ff", /* light magenta (pink) */ -+ /* 2 */ "#00007f", /* blue */ -+ /* 3 */ "#009300", /* green */ -+ /* 8 // "#ffff00", yellow */ -+ /* 11 // "#00ffff", light cyan (aqua) */ -+ /* 14 */ "#7f7f7f", /* grey */ -+ /* 15 */ "#d2d2d2" /* light grey (silver) */ - }; - --static char const *color (int num) -+static const char *color (int num) - { - return color_list[num % (sizeof (color_list) / sizeof (char *))]; - } -@@ -322,6 +327,11 @@ static void print_file_line (char *p, in - while (line > 0 && *p) { - if (*p == '\n') { - line--; -+ } else if (*p == '\r') { -+ line--; -+ if (p[1] == '\n') { -+ p++; -+ } - } else if (line == 1) { - if (*p == '<') - zend_printf ("<"); -@@ -343,6 +353,9 @@ static void dump_op_array (eaccelerator_ - unsigned last_line = 0; - - #ifdef ZEND_ENGINE_2 -+#ifdef ZEND_ENGINE_2_1 -+ zend_printf ("last_var = %u, ", p->last_var); -+#endif - zend_printf ("T = %u, size = %u\n, brk_count = %u, file = %s<br>\n", - p->T, p->last, p->last_brk_cont, p->filename); - #else -@@ -367,9 +380,25 @@ static void dump_op_array (eaccelerator_ - ZEND_PUTS (" </td></tr>\n"); - q = q->pListNext; - } -- ZEND_PUTS ("<tbody></table><br>\n"); -+ ZEND_PUTS ("</tbody></table><br>\n"); - } -- -+#ifdef ZEND_ENGINE_2_1 -+ if (p->last_var) { -+ int i; -+ -+ ZEND_PUTS("<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"600\" bgcolor=\"#000000\" align=\"center\" style=\"table-layout:fixed\">\n"); -+ ZEND_PUTS("<thead valign=\"middle\" bgcolor=\"#9999cc\"><tr><th width=\"200\">Compiled variable</th><th width=\"200\">Len</th><th width=\"200\">Hash</th></tr></thead>\n"); -+ ZEND_PUTS("<tbody valign=\"top\" bgcolor=\"#cccccc\" style=\"word-break:break-all\">\n"); -+ -+ for (i = 0; i < p->last_var; i ++) { -+ zend_printf ("<tr><td bgcolor=\"#ccccff\">$%s </td>", p->vars[i].name); -+ zend_printf ("<td bgcolor=\"#ccccff\">%u </td>", p->vars[i].name_len); -+ zend_printf ("<td bgcolor=\"#ccccff\">%u </td></tr>\n", p->vars[i].hash_value); -+ } -+ ZEND_PUTS ("</tbody></table><br>\n"); -+ } -+#endif -+ - if (p->opcodes) { - int n = 0; - opline = p->opcodes; -@@ -377,20 +406,20 @@ static void dump_op_array (eaccelerator_ - - filebuf = get_file_contents (p->filename); - -- ZEND_PUTS -- ("<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"900\" bgcolor=\"#000000\" align=\"center\" style=\"table-layout:fixed\">\n"); -- ZEND_PUTS -- ("<thead valign=\"middle\" bgcolor=\"#9999cc\"><tr><th width=\"40\">N</th><th width=\"160\">OPCODE</th><th width=\"160\">EXTENDED_VALUE</th><th width=\"220\">OP1</th><th width=\"220\">OP2</th><th width=\"80\">RESULT</th></tr></thead>\n"); -- ZEND_PUTS -- ("<tbody valign=\"top\" bgcolor=\"#cccccc\" style=\"word-break:break-all; font-size: x-small\">\n"); -+ ZEND_PUTS("<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"900\" bgcolor=\"#000000\" align=\"center\" style=\"table-layout:fixed\">\n"); -+ ZEND_PUTS("<thead valign=\"middle\" bgcolor=\"#9999cc\"><tr><th width=\"40\">N</th><th width=\"160\">OPCODE</th><th width=\"160\">EXTENDED_VALUE</th><th width=\"220\">OP1</th><th width=\"220\">OP2</th><th width=\"80\">RESULT</th></tr></thead>\n"); -+ ZEND_PUTS("<tbody valign=\"top\" bgcolor=\"#cccccc\" style=\"word-break:break-all; font-size: x-small\">\n"); -+ - for (; opline < end; opline++) { - const opcode_dsc *op = get_opcode_dsc (opline->opcode); - -- while (last_line < opline->lineno) { -- last_line++; -- zend_printf -- ("<tr><td colspan=6 bgcolor=black><pre><font color=#80ff80>"); -- print_file_line (filebuf, last_line); -+ if (last_line < opline->lineno) { -+ zend_printf("<tr><td colspan=6 bgcolor=black><pre><font color=#80ff80>"); -+ while (last_line < opline->lineno) { -+ last_line++; -+ print_file_line(filebuf, last_line); -+ ZEND_PUTS("\n"); -+ } - zend_printf ("</font></pre></td></tr>\n"); - } - -@@ -459,6 +488,7 @@ static void dump_op_array (eaccelerator_ - } else { - ZEND_PUTS ("<td> </td>"); - } -+#ifndef ZEND_ENGINE_2_1 - } else if (opline->opcode == ZEND_UNSET_DIM_OBJ) { - if (opline->extended_value == ZEND_UNSET_DIM) { - ZEND_PUTS ("<td>ZEND_UNSET_DIM </td>"); -@@ -468,6 +498,7 @@ static void dump_op_array (eaccelerator_ - ZEND_PUTS ("<td> </td>"); - } - #endif -+#endif - } else if (opline->extended_value != 0) { - zend_printf ("<td>%ld </td>", opline->extended_value); - } else { -@@ -479,7 +510,13 @@ static void dump_op_array (eaccelerator_ - n, opline->opcode, opline->extended_value); - op = get_opcode_dsc (0); - } -- -+#ifdef ZEND_ENGINE_2_1 -+ if (opline->op1.op_type == IS_CV) { -+ zend_printf("<td><font color=%s>$cv%u(%s)</font> </td>", -+ color (opline->op1.u.var), opline->op1.u.var, -+ p->vars[opline->op1.u.var].name); -+ } else -+#endif - if ((op->ops & OP1_MASK) == OP1_OPLINE) { - zend_printf - ("<td><font color=%s>opline(%d)</font> </td>", -@@ -586,7 +623,13 @@ static void dump_op_array (eaccelerator_ - ("<td>UNKNOWN NODE %d </td>", opline->op1.op_type); - } - } -- -+#ifdef ZEND_ENGINE_2_1 -+ if (opline->op2.op_type == IS_CV) { -+ zend_printf("<td><font color=%s>$cv%u(%s)</font> </td>", -+ color (opline->op2.u.var), opline->op2.u.var, -+ p->vars[opline->op2.u.var].name); -+ } else -+#endif - if ((op->ops & OP2_MASK) == OP2_OPLINE) { - zend_printf - ("<td><font color=%s>opline(%d)</font> </td>", -@@ -674,7 +717,14 @@ static void dump_op_array (eaccelerator_ - ("<td>UNKNOWN NODE %d </td>", opline->op2.op_type); - } - } -- -+#ifdef ZEND_ENGINE_2_1 -+ if (opline->result.op_type == IS_CV) { -+ zend_printf("<td><font color=%s>$cv%u(%s)</font> </td>", -+ color (opline->result.u.var), opline->result.u.var, -+ p->vars[opline->result.u.var].name); -+ } else -+#endif -+ - switch (op->ops & RES_MASK) { - case RES_STD: - if (opline->result.op_type == IS_CONST) { -@@ -1833,7 +1883,7 @@ PHP_FUNCTION (eaccelerator) - } - - { -- char *s = php_get_uname (); -+ char *s = php_get_uname ('a'); - zend_printf ("<nobr>%s</nobr>\n", s); - efree (s); - } |