[PHP-CVS] com php-src: Merge branch 'PHP-5.5': ext/opcache/Optimizer/pass1_5.c

2013-08-29 Thread Dmitry Stogov
Commit:ec173433dac5d5ef64644cbc0e66454326a6725c
Author:Dmitry Stogov  Thu, 29 Aug 2013 11:57:19 
+0400
Parents:   462f2167ae760793a4152b7e359d8ad75f342a05 
5015c4af6c1d2af992e0525f10e93b01043730e1
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=ec173433dac5d5ef64644cbc0e66454326a6725c

Log:
Merge branch 'PHP-5.5'

* PHP-5.5:
  Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var)

Conflicts:
NEWS

Bugs:
https://bugs.php.net/65510

Changed paths:
  MM  ext/opcache/Optimizer/pass1_5.c


Diff:



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.5': ext/opcache/Optimizer/pass1_5.c ext/opcache/Optimizer/zend_optimizer.c

2013-08-09 Thread Dmitry Stogov
Commit:2bc886abed2164fd30519b3016e3565d6069f71f
Author:Dmitry Stogov  Fri, 9 Aug 2013 17:52:22 
+0400
Parents:   7c3afd31f9a3357afc93c50223e2c4cfb1520f37 
b27f6826d4d35caaf5b08e87297d13838930df94
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=2bc886abed2164fd30519b3016e3565d6069f71f

Log:
Merge branch 'PHP-5.5'

* PHP-5.5:
  Replce ZEND_FETCH_* instructions with IS_CV if possible

Conflicts:
ext/opcache/Optimizer/zend_optimizer.c

Changed paths:
  MM  ext/opcache/Optimizer/pass1_5.c
  MM  ext/opcache/Optimizer/zend_optimizer.c


Diff:
diff --cc ext/opcache/Optimizer/pass1_5.c
index ec5a786,46406c3..8c82537
--- a/ext/opcache/Optimizer/pass1_5.c
+++ b/ext/opcache/Optimizer/pass1_5.c
@@@ -373,71 -371,75 +373,123 @@@ if (ZEND_OPTIMIZER_PASS_1 & OPTIMIZATIO
}
break;
  
 -  case ZEND_INIT_FCALL_BY_NAME:
 -  if (opline->extended_value == 0 /* not method */ &&
 -  ZEND_OP1_TYPE(opline) == IS_UNUSED &&
 -  ZEND_OP2_TYPE(opline) == IS_CONST) {
 -  if ((opline + 1)->opcode == 
ZEND_DO_FCALL_BY_NAME &&
 -  (opline + 1)->extended_value == 0) {
 -  (opline + 1)->opcode = ZEND_DO_FCALL;
 -  COPY_NODE((opline + 1)->op1, 
opline->op2);
 -  
zend_str_tolower(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), 
Z_STRLEN(ZEND_OP1_LITERAL(opline + 1)));
 +  case ZEND_DO_FCALL:
 +  /* define("name", scalar); */
 +  if (collect_constants &&
 +  opline->extended_value == 2 &&
 +  ZEND_OP1_TYPE(opline) == IS_CONST &&
 +  Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING &&
 +  Z_STRLEN(ZEND_OP1_LITERAL(opline)) == 
sizeof("define")-1 &&
 +  
zend_binary_strcasecmp(Z_STRVAL(ZEND_OP1_LITERAL(opline)), 
Z_STRLEN(ZEND_OP1_LITERAL(opline)), "define", sizeof("define")-1) == 0 &&
 +  (opline-1)->opcode == ZEND_SEND_VAL &&
 +  ZEND_OP1_TYPE(opline-1) == IS_CONST &&
 +  (Z_TYPE(ZEND_OP1_LITERAL(opline-1)) <= IS_BOOL ||
 +   Z_TYPE(ZEND_OP1_LITERAL(opline-1)) == IS_STRING) &&
 +  (opline-2)->opcode == ZEND_SEND_VAL &&
 +  ZEND_OP1_TYPE(opline-2) == IS_CONST &&
 +  Z_TYPE(ZEND_OP1_LITERAL(opline-2)) == IS_STRING) {
 +  zend_optimizer_collect_constant(constants, 
&ZEND_OP1_LITERAL(opline-2), &ZEND_OP1_LITERAL(opline-1));
 +  }
 +  break;
 +#if ZEND_EXTENSION_API_NO > PHP_5_2_X_API_NO
 +  case ZEND_DECLARE_CONST:
 +  if (collect_constants &&
 +  Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING &&
 +  (Z_TYPE(ZEND_OP2_LITERAL(opline)) <= IS_BOOL ||
 +   Z_TYPE(ZEND_OP2_LITERAL(opline)) == IS_STRING)) {
 +  zend_optimizer_collect_constant(constants, 
&ZEND_OP1_LITERAL(opline), &ZEND_OP2_LITERAL(opline));
 +  }
 +  break;
 +#endif
 +
 +  case ZEND_RETURN:
  #if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO
 -  Z_HASH_P(&ZEND_OP1_LITERAL(opline + 1)) 
= zend_hash_func(Z_STRVAL(ZEND_OP1_LITERAL(opline + 1)), 
Z_STRLEN(ZEND_OP1_LITERAL(opline + 1)) + 1);
 -  op_array->literals[(opline + 
1)->op1.constant].cache_slot = op_array->last_cache_slot++;
 +  case ZEND_RETURN_BY_REF:
  #endif
 -  MAKE_NOP(opline);
 -  }
 -  }
 +#if ZEND_EXTENSION_API_NO > PHP_5_4_X_API_NO
 +  case ZEND_GENERATOR_RETURN:
 +#endif
 +  case ZEND_EXIT:
 +  case ZEND_THROW:
 +  case ZEND_CATCH:
 +  case ZEND_BRK:
 +  case ZEND_CONT:
 +#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
 +  case ZEND_GOTO:
 +#endif
 +#if ZEND_EXTENSION_API_NO > PHP_5_4_X_API_NO
 +  case ZEND_FAST_CALL:
 +  case ZEND_FAST_RET:
 +#endif
 +  case ZEND_JMP:
 +  case ZEND_JMPZNZ:
 +  case ZEND_JMPZ:
 +  case ZEND_JMPNZ:
 +  case ZEND_JMPZ_EX:
 +  case ZEND_JMPNZ_EX:
 +  case ZEND_FE_RESET:
 +  case ZEND_FE_FETCH:
 +  case ZEND_NEW:
 +#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
 +  case ZEND_JMP_SET:
 +#endif
 +#if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO
 +  case ZEND_JMP_SET_VAR:
 +#endif