Changeset 839 for trunk/processor/processor.m4
- Timestamp:
- 2012-03-25T04:41:55+02:00 (14 months ago)
- File:
-
- 1 edited
-
trunk/processor/processor.m4 (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/processor/processor.m4
r837 r839 314 314 DEF_STRUCT_P_FUNC(`zend_trait_precedence', , `dnl {{{ 315 315 STRUCT_P(zend_trait_method_reference, trait_method) 316 COPYNULL(exclude_from_classes) 316 dnl TODO 317 STRUCT_ARRAY(, xc_class_name_t, exclude_from_classes) 317 318 COPYNULL(function) 318 319 ') … … 920 921 #endif 921 922 #ifdef ZEND_ENGINE_2_4 922 COPYNULL(run_time_cache)923 COPYNULL(last_cache_slot)923 SETNULL(run_time_cache) 924 DISPATCH(int, last_cache_slot) 924 925 #endif 925 926 } while (0); … … 928 929 #ifdef ZEND_ENGINE_2 929 930 dnl mark it as -1 on store, and lookup parent on restore 930 IFSTORE(`dst->prototype = (processor->active_class_entry_src && src->prototype) ? (zend_function *) -1 : NULL; DONE(prototype)', ` 931 IFRESTORE(`do { 932 zend_function *parent; 933 if (src->prototype != NULL 934 && zend_u_hash_find(&(processor->active_class_entry_dst->parent->function_table), 935 UG(unicode) ? IS_UNICODE : IS_STRING, 936 src->function_name, xc_zstrlen(UG(unicode) ? IS_UNICODE : IS_STRING, src->function_name) + 1, 937 (void **) &parent) == SUCCESS) { 938 /* see do_inherit_method_check() */ 939 if ((parent->common.fn_flags & ZEND_ACC_ABSTRACT)) { 940 dst->prototype = parent; 941 } else if (!(parent->common.fn_flags & ZEND_ACC_CTOR) || (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE))) { 942 /* ctors only have a prototype if it comes from an interface */ 943 dst->prototype = parent->common.prototype ? parent->common.prototype : parent; 944 } 945 else { 946 dst->prototype = NULL; 947 } 931 IFSTORE(`dst->prototype = (processor->active_class_entry_src && src->prototype) ? (zend_function *) -1 : NULL;', ` 932 IFRESTORE(`do { 933 zend_function *parent; 934 if (src->prototype != NULL 935 && zend_u_hash_find(&(processor->active_class_entry_dst->parent->function_table), 936 UG(unicode) ? IS_UNICODE : IS_STRING, 937 src->function_name, xc_zstrlen(UG(unicode) ? IS_UNICODE : IS_STRING, src->function_name) + 1, 938 (void **) &parent) == SUCCESS) { 939 /* see do_inherit_method_check() */ 940 if ((parent->common.fn_flags & ZEND_ACC_ABSTRACT)) { 941 dst->prototype = parent; 942 } else if (!(parent->common.fn_flags & ZEND_ACC_CTOR) || (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE))) { 943 /* ctors only have a prototype if it comes from an interface */ 944 dst->prototype = parent->common.prototype ? parent->common.prototype : parent; 948 945 } 949 946 else { 950 947 dst->prototype = NULL; 951 948 } 952 DONE(prototype) 953 } while (0); 954 ', ` 955 COPYNULL(prototype) 956 ') 957 ') 949 } 950 else { 951 dst->prototype = NULL; 952 } 953 } while (0); 954 ') 955 ') 956 DONE(prototype) 958 957 959 958 #endif
Note: See TracChangeset
for help on using the changeset viewer.

