Guest User

Untitled

a guest
Aug 23rd, 2011
103
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Common subdirectories: ../php-5.3.8/Zend/RFCs and Zend/RFCs
  2. Common subdirectories: ../php-5.3.8/Zend/tests and Zend/tests
  3. Binary files ../php-5.3.8/Zend/zend_alloc.o and Zend/zend_alloc.o differ
  4. diff -u ../php-5.3.8/Zend/zend_API.c Zend/zend_API.c
  5. --- ../php-5.3.8/Zend/zend_API.c 2011-08-05 18:22:27.000000000 -0700
  6. +++ Zend/zend_API.c 2011-08-23 12:05:53.000000000 -0700
  7. @@ -1770,6 +1770,12 @@
  8. } else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1)) {
  9. zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_ISSET_FUNC_NAME);
  10. }
  11. + } else if (name_len == sizeof(ZEND_EMPTY_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_EMPTY_FUNC_NAME, sizeof(ZEND_EMPTY_FUNC_NAME))) {
  12. + if (fptr->common.num_args != 1) {
  13. + zend_error(error_type, "Method %s::%s() must take exactly 1 argument", ce->name, ZEND_EMPTY_FUNC_NAME);
  14. + } else if (ARG_SHOULD_BE_SENT_BY_REF(fptr, 1)) {
  15. + zend_error(error_type, "Method %s::%s() cannot take arguments by reference", ce->name, ZEND_EMPTY_FUNC_NAME);
  16. + }
  17. } else if (name_len == sizeof(ZEND_CALL_FUNC_NAME) - 1 && !memcmp(lcname, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME))) {
  18. if (fptr->common.num_args != 2) {
  19. zend_error(error_type, "Method %s::%s() must take exactly 2 arguments", ce->name, ZEND_CALL_FUNC_NAME);
  20. @@ -1801,7 +1807,7 @@
  21. int count=0, unload=0;
  22. HashTable *target_function_table = function_table;
  23. int error_type;
  24. - zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__call = NULL, *__callstatic = NULL, *__tostring = NULL;
  25. + zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__empty = NULL, *__call = NULL, *__callstatic = NULL, *__tostring = NULL;
  26. char *lowercase_name;
  27. int fname_len;
  28. char *lc_class_name = NULL;
  29. @@ -1931,6 +1937,8 @@
  30. __unset = reg_function;
  31. } else if ((fname_len == sizeof(ZEND_ISSET_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_ISSET_FUNC_NAME, sizeof(ZEND_ISSET_FUNC_NAME))) {
  32. __isset = reg_function;
  33. + } else if ((fname_len == sizeof(ZEND_EMPTY_FUNC_NAME)-1) && !memcmp(lowercase_name, ZEND_EMPTY_FUNC_NAME, sizeof(ZEND_EMPTY_FUNC_NAME))) {
  34. + __empty = reg_function;
  35. } else {
  36. reg_function = NULL;
  37. }
  38. @@ -1969,6 +1977,7 @@
  39. scope->__set = __set;
  40. scope->__unset = __unset;
  41. scope->__isset = __isset;
  42. + scope->__empty = __empty;
  43. if (ctor) {
  44. ctor->common.fn_flags |= ZEND_ACC_CTOR;
  45. if (ctor->common.fn_flags & ZEND_ACC_STATIC) {
  46. @@ -2032,6 +2041,12 @@
  47. }
  48. __isset->common.fn_flags &= ~ZEND_ACC_ALLOW_STATIC;
  49. }
  50. + if (__empty) {
  51. + if (__empty->common.fn_flags & ZEND_ACC_STATIC) {
  52. + zend_error(error_type, "Method %s::%s() cannot be static", scope->name, __isset->common.function_name);
  53. + }
  54. + __empty->common.fn_flags &= ~ZEND_ACC_ALLOW_STATIC;
  55. + }
  56. efree(lc_class_name);
  57. }
  58. return SUCCESS;
  59. Binary files ../php-5.3.8/Zend/zend_API.o and Zend/zend_API.o differ
  60. diff -u ../php-5.3.8/Zend/zend_builtin_functions.c Zend/zend_builtin_functions.c
  61. --- ../php-5.3.8/Zend/zend_builtin_functions.c 2011-08-08 07:54:50.000000000 -0700
  62. +++ Zend/zend_builtin_functions.c 2011-08-23 16:57:36.000000000 -0700
  63. @@ -1148,7 +1148,7 @@
  64.  
  65. if (Z_TYPE_P(object) == IS_OBJECT &&
  66. Z_OBJ_HANDLER_P(object, has_property) &&
  67. - Z_OBJ_HANDLER_P(object, has_property)(object, &property_z, 2 TSRMLS_CC)) {
  68. + Z_OBJ_HANDLER_P(object, has_property)(object, &property_z, 3 TSRMLS_CC)) {
  69. RETURN_TRUE;
  70. }
  71. RETURN_FALSE;
  72. Binary files ../php-5.3.8/Zend/zend_builtin_functions.o and Zend/zend_builtin_functions.o differ
  73. Binary files ../php-5.3.8/Zend/zend_closures.o and Zend/zend_closures.o differ
  74. diff -u ../php-5.3.8/Zend/zend_compile.c Zend/zend_compile.c
  75. --- ../php-5.3.8/Zend/zend_compile.c 2011-07-08 09:29:33.000000000 -0700
  76. +++ Zend/zend_compile.c 2011-08-23 12:04:23.000000000 -0700
  77. @@ -1265,6 +1265,10 @@
  78. if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
  79. zend_error(E_WARNING, "The magic method __isset() must have public visibility and cannot be static");
  80. }
  81. + } else if ((name_len == sizeof(ZEND_EMPTY_FUNC_NAME)-1) && (!memcmp(lcname, ZEND_EMPTY_FUNC_NAME, sizeof(ZEND_EMPTY_FUNC_NAME)-1))) {
  82. + if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
  83. + zend_error(E_WARNING, "The magic method __empty() must have public visibility and cannot be static");
  84. + }
  85. } else if ((name_len == sizeof(ZEND_TOSTRING_FUNC_NAME)-1) && (!memcmp(lcname, ZEND_TOSTRING_FUNC_NAME, sizeof(ZEND_TOSTRING_FUNC_NAME)-1))) {
  86. if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
  87. zend_error(E_WARNING, "The magic method __toString() must have public visibility and cannot be static");
  88. @@ -1320,6 +1324,11 @@
  89. zend_error(E_WARNING, "The magic method __isset() must have public visibility and cannot be static");
  90. }
  91. CG(active_class_entry)->__isset = (zend_function *) CG(active_op_array);
  92. + } else if ((name_len == sizeof(ZEND_EMPTY_FUNC_NAME)-1) && (!memcmp(lcname, ZEND_EMPTY_FUNC_NAME, sizeof(ZEND_EMPTY_FUNC_NAME)-1))) {
  93. + if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
  94. + zend_error(E_WARNING, "The magic method __empty() must have public visibility and cannot be static");
  95. + }
  96. + CG(active_class_entry)->__empty = (zend_function *) CG(active_op_array);
  97. } else if ((name_len == sizeof(ZEND_TOSTRING_FUNC_NAME)-1) && (!memcmp(lcname, ZEND_TOSTRING_FUNC_NAME, sizeof(ZEND_TOSTRING_FUNC_NAME)-1))) {
  98. if (fn_flags & ((ZEND_ACC_PPP_MASK | ZEND_ACC_STATIC) ^ ZEND_ACC_PUBLIC)) {
  99. zend_error(E_WARNING, "The magic method __toString() must have public visibility and cannot be static");
  100. @@ -2445,6 +2454,9 @@
  101. if (!ce->__isset) {
  102. ce->__isset = ce->parent->__isset;
  103. }
  104. + if (!ce->__empty) {
  105. + ce->__empty = ce->parent->__empty;
  106. + }
  107. if (!ce->__call) {
  108. ce->__call = ce->parent->__call;
  109. }
  110. @@ -5041,6 +5053,7 @@
  111. ce->__set = NULL;
  112. ce->__unset = NULL;
  113. ce->__isset = NULL;
  114. + ce->__empty = NULL;
  115. ce->__call = NULL;
  116. ce->__callstatic = NULL;
  117. ce->__tostring = NULL;
  118. diff -u ../php-5.3.8/Zend/zend_compile.h Zend/zend_compile.h
  119. --- ../php-5.3.8/Zend/zend_compile.h 2011-06-11 18:43:10.000000000 -0700
  120. +++ Zend/zend_compile.h 2011-08-23 12:00:59.000000000 -0700
  121. @@ -742,6 +742,7 @@
  122. #define ZEND_SET_FUNC_NAME "__set"
  123. #define ZEND_UNSET_FUNC_NAME "__unset"
  124. #define ZEND_ISSET_FUNC_NAME "__isset"
  125. +#define ZEND_EMPTY_FUNC_NAME "__empty"
  126. #define ZEND_CALL_FUNC_NAME "__call"
  127. #define ZEND_CALLSTATIC_FUNC_NAME "__callstatic"
  128. #define ZEND_TOSTRING_FUNC_NAME "__tostring"
  129. Binary files ../php-5.3.8/Zend/zend_compile.o and Zend/zend_compile.o differ
  130. Binary files ../php-5.3.8/Zend/zend_constants.o and Zend/zend_constants.o differ
  131. Binary files ../php-5.3.8/Zend/zend_default_classes.o and Zend/zend_default_classes.o differ
  132. Binary files ../php-5.3.8/Zend/zend_dynamic_array.o and Zend/zend_dynamic_array.o differ
  133. Binary files ../php-5.3.8/Zend/zend_exceptions.o and Zend/zend_exceptions.o differ
  134. Binary files ../php-5.3.8/Zend/zend_execute_API.o and Zend/zend_execute_API.o differ
  135. Binary files ../php-5.3.8/Zend/zend_execute.o and Zend/zend_execute.o differ
  136. Binary files ../php-5.3.8/Zend/zend_extensions.o and Zend/zend_extensions.o differ
  137. Binary files ../php-5.3.8/Zend/zend_float.o and Zend/zend_float.o differ
  138. Binary files ../php-5.3.8/Zend/zend_gc.o and Zend/zend_gc.o differ
  139. diff -u ../php-5.3.8/Zend/zend.h Zend/zend.h
  140. --- ../php-5.3.8/Zend/zend.h 2011-01-16 13:39:22.000000000 -0700
  141. +++ Zend/zend.h 2011-08-23 14:47:16.000000000 -0700
  142. @@ -291,6 +291,7 @@
  143. zend_bool in_set;
  144. zend_bool in_unset;
  145. zend_bool in_isset;
  146. + zend_bool in_empty;
  147. zend_bool dummy; /* sizeof(zend_guard) must not be equal to sizeof(void*) */
  148. } zend_guard;
  149.  
  150. @@ -439,6 +440,7 @@
  151. union _zend_function *__set;
  152. union _zend_function *__unset;
  153. union _zend_function *__isset;
  154. + union _zend_function *__empty;
  155. union _zend_function *__call;
  156. union _zend_function *__callstatic;
  157. union _zend_function *__tostring;
  158. Binary files ../php-5.3.8/Zend/zend_hash.o and Zend/zend_hash.o differ
  159. Binary files ../php-5.3.8/Zend/zend_highlight.o and Zend/zend_highlight.o differ
  160. Binary files ../php-5.3.8/Zend/zend_indent.o and Zend/zend_indent.o differ
  161. Binary files ../php-5.3.8/Zend/zend_ini.o and Zend/zend_ini.o differ
  162. Binary files ../php-5.3.8/Zend/zend_ini_parser.o and Zend/zend_ini_parser.o differ
  163. Binary files ../php-5.3.8/Zend/zend_ini_scanner.o and Zend/zend_ini_scanner.o differ
  164. Binary files ../php-5.3.8/Zend/zend_interfaces.o and Zend/zend_interfaces.o differ
  165. Binary files ../php-5.3.8/Zend/zend_iterators.o and Zend/zend_iterators.o differ
  166. Binary files ../php-5.3.8/Zend/zend_language_parser.o and Zend/zend_language_parser.o differ
  167. Binary files ../php-5.3.8/Zend/zend_language_scanner.o and Zend/zend_language_scanner.o differ
  168. Binary files ../php-5.3.8/Zend/zend_list.o and Zend/zend_list.o differ
  169. Binary files ../php-5.3.8/Zend/zend_llist.o and Zend/zend_llist.o differ
  170. Binary files ../php-5.3.8/Zend/zend_multibyte.o and Zend/zend_multibyte.o differ
  171. Binary files ../php-5.3.8/Zend/zend.o and Zend/zend.o differ
  172. diff -u ../php-5.3.8/Zend/zend_object_handlers.c Zend/zend_object_handlers.c
  173. --- ../php-5.3.8/Zend/zend_object_handlers.c 2011-04-07 06:35:27.000000000 -0700
  174. +++ Zend/zend_object_handlers.c 2011-08-23 17:26:17.000000000 -0700
  175. @@ -158,6 +158,27 @@
  176. }
  177. /* }}} */
  178.  
  179. +static zval *zend_std_call_isempty(zval *object, zval *member TSRMLS_DC) /* {{{ */
  180. +{
  181. + zval *retval = NULL;
  182. + zend_class_entry *ce = Z_OBJCE_P(object);
  183. +
  184. + /* __empty handler is called with one argument:
  185. + property name
  186. +
  187. + it should return whether the property is empty or not
  188. + */
  189. +
  190. + SEPARATE_ARG_IF_REF(member);
  191. +
  192. + zend_call_method_with_1_params(&object, ce, &ce->__empty, ZEND_EMPTY_FUNC_NAME, &retval, member);
  193. +
  194. + zval_ptr_dtor(&member);
  195. +
  196. + return retval;
  197. +}
  198. +/* }}} */
  199. +
  200. static int zend_verify_property_access(zend_property_info *property_info, zend_class_entry *ce TSRMLS_DC) /* {{{ */
  201. {
  202. switch (property_info->flags & ZEND_ACC_PPP_MASK) {
  203. @@ -307,6 +328,7 @@
  204. stub.in_set = 0;
  205. stub.in_unset = 0;
  206. stub.in_isset = 0;
  207. + stub.in_empty = 0;
  208. return zend_hash_quick_add(zobj->guards, property_info->name, property_info->name_length+1, property_info->h, (void**)&stub, sizeof(stub), (void**) pguard);
  209. }
  210. /* }}} */
  211. @@ -1164,14 +1186,34 @@
  212. #if DEBUG_OBJECT_HANDLERS
  213. fprintf(stderr, "Read object #%d property: %s\n", Z_OBJ_HANDLE_P(object), Z_STRVAL_P(member));
  214. #endif
  215. -
  216. property_info = zend_get_property_info(zobj->ce, member, 1 TSRMLS_CC);
  217.  
  218. if (!property_info || zend_hash_quick_find(zobj->properties, property_info->name, property_info->name_length+1, property_info->h, (void **) &value) == FAILURE) {
  219. zend_guard *guard;
  220.  
  221. result = 0;
  222. - if ((has_set_exists != 2) &&
  223. +
  224. + if(has_set_exists == ZEND_ISEMPTY &&
  225. + zobj->ce->__empty &&
  226. + zend_get_property_guard(zobj, property_info, member, &guard) == SUCCESS &&
  227. + !guard->in_empty) {
  228. + zval *rv;
  229. +
  230. + /* have empty func - try with it! */
  231. + Z_ADDREF_P(object);
  232. + if (PZVAL_IS_REF(object)) {
  233. + SEPARATE_ZVAL(&object);
  234. + }
  235. + guard->in_empty = 1; /* prevent circular getting */
  236. + rv = zend_std_call_isempty(object, member TSRMLS_CC);
  237. + if (rv) {
  238. + result = !zend_is_true(rv);
  239. + zval_ptr_dtor(&rv);
  240. + }
  241. + guard->in_empty = 0;
  242. + zval_ptr_dtor(&object);
  243. +
  244. + } else if (has_set_exists == ZEND_ISSET &&
  245. zobj->ce->__isset &&
  246. zend_get_property_guard(zobj, property_info, member, &guard) == SUCCESS &&
  247. !guard->in_isset) {
  248. @@ -1187,7 +1229,7 @@
  249. if (rv) {
  250. result = zend_is_true(rv);
  251. zval_ptr_dtor(&rv);
  252. - if (has_set_exists && result) {
  253. + if (!result) {
  254. if (!EG(exception) && zobj->ce->__get && !guard->in_get) {
  255. guard->in_get = 1;
  256. rv = zend_std_call_getter(object, member TSRMLS_CC);
  257. @@ -1208,17 +1250,17 @@
  258. zval_ptr_dtor(&object);
  259. }
  260. } else {
  261. - switch (has_set_exists) {
  262. - case 0:
  263. + switch (has_set_exists) {
  264. + case ZEND_ISSET:
  265. result = (Z_TYPE_PP(value) != IS_NULL);
  266. break;
  267. - default:
  268. + case ZEND_ISEMPTY:
  269. result = zend_is_true(*value);
  270. break;
  271. - case 2:
  272. - result = 1;
  273. - break;
  274. - }
  275. + case 3: // comes from property_exists
  276. + result = 1;
  277. + break;
  278. + }
  279. }
  280.  
  281. if (tmp_member) {
  282. Binary files ../php-5.3.8/Zend/zend_object_handlers.o and Zend/zend_object_handlers.o differ
  283. Binary files ../php-5.3.8/Zend/zend_objects_API.o and Zend/zend_objects_API.o differ
  284. Binary files ../php-5.3.8/Zend/zend_objects.o and Zend/zend_objects.o differ
  285. Binary files ../php-5.3.8/Zend/zend_opcode.o and Zend/zend_opcode.o differ
  286. Binary files ../php-5.3.8/Zend/zend_operators.o and Zend/zend_operators.o differ
  287. Binary files ../php-5.3.8/Zend/zend_ptr_stack.o and Zend/zend_ptr_stack.o differ
  288. Binary files ../php-5.3.8/Zend/zend_qsort.o and Zend/zend_qsort.o differ
  289. Binary files ../php-5.3.8/Zend/zend_sprintf.o and Zend/zend_sprintf.o differ
  290. Binary files ../php-5.3.8/Zend/zend_stack.o and Zend/zend_stack.o differ
  291. Binary files ../php-5.3.8/Zend/zend_stream.o and Zend/zend_stream.o differ
  292. Binary files ../php-5.3.8/Zend/zend_strtod.o and Zend/zend_strtod.o differ
  293. Binary files ../php-5.3.8/Zend/zend_ts_hash.o and Zend/zend_ts_hash.o differ
  294. Binary files ../php-5.3.8/Zend/zend_variables.o and Zend/zend_variables.o differ
  295. diff -u ../php-5.3.8/Zend/zend_vm_def.h Zend/zend_vm_def.h
  296. --- ../php-5.3.8/Zend/zend_vm_def.h 2011-07-11 03:31:49.000000000 -0700
  297. +++ Zend/zend_vm_def.h 2011-08-23 16:10:12.000000000 -0700
  298. @@ -4009,7 +4009,7 @@
  299. }
  300. if (prop_dim) {
  301. if (Z_OBJ_HT_P(*container)->has_property) {
  302. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  303. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  304. } else {
  305. zend_error(E_NOTICE, "Trying to check property of non-object");
  306. result = 0;
  307. diff -u ../php-5.3.8/Zend/zend_vm_execute.h Zend/zend_vm_execute.h
  308. --- ../php-5.3.8/Zend/zend_vm_execute.h 2011-07-11 03:31:49.000000000 -0700
  309. +++ Zend/zend_vm_execute.h 2011-08-23 15:43:17.000000000 -0700
  310. @@ -10898,6 +10898,8 @@
  311. zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
  312. zval **value = NULL;
  313. int result = 0;
  314. + fprintf(stderr, "has_set_exists isset %d\n", ZEND_ISSET);
  315. + fprintf(stderr, "has_set_exists empty %d\n", ZEND_ISEMPTY);
  316.  
  317. if (IS_VAR != IS_VAR || container) {
  318.  
  319. @@ -10959,9 +10961,10 @@
  320. if (0) {
  321. MAKE_REAL_ZVAL_PTR(offset);
  322. }
  323. + zend_error(E_WARNING, "debug: %d", opline->extended_value);
  324. if (prop_dim) {
  325. if (Z_OBJ_HT_P(*container)->has_property) {
  326. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  327. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  328. } else {
  329. zend_error(E_NOTICE, "Trying to check property of non-object");
  330. result = 0;
  331. @@ -12712,7 +12715,7 @@
  332. }
  333. if (prop_dim) {
  334. if (Z_OBJ_HT_P(*container)->has_property) {
  335. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  336. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  337. } else {
  338. zend_error(E_NOTICE, "Trying to check property of non-object");
  339. result = 0;
  340. @@ -14514,7 +14517,7 @@
  341. }
  342. if (prop_dim) {
  343. if (Z_OBJ_HT_P(*container)->has_property) {
  344. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  345. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  346. } else {
  347. zend_error(E_NOTICE, "Trying to check property of non-object");
  348. result = 0;
  349. @@ -16902,7 +16905,7 @@
  350. }
  351. if (prop_dim) {
  352. if (Z_OBJ_HT_P(*container)->has_property) {
  353. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  354. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  355. } else {
  356. zend_error(E_NOTICE, "Trying to check property of non-object");
  357. result = 0;
  358. @@ -18094,7 +18097,7 @@
  359. }
  360. if (prop_dim) {
  361. if (Z_OBJ_HT_P(*container)->has_property) {
  362. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  363. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  364. } else {
  365. zend_error(E_NOTICE, "Trying to check property of non-object");
  366. result = 0;
  367. @@ -19153,7 +19156,7 @@
  368. }
  369. if (prop_dim) {
  370. if (Z_OBJ_HT_P(*container)->has_property) {
  371. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  372. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  373. } else {
  374. zend_error(E_NOTICE, "Trying to check property of non-object");
  375. result = 0;
  376. @@ -20212,7 +20215,7 @@
  377. }
  378. if (prop_dim) {
  379. if (Z_OBJ_HT_P(*container)->has_property) {
  380. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  381. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  382. } else {
  383. zend_error(E_NOTICE, "Trying to check property of non-object");
  384. result = 0;
  385. @@ -21530,7 +21533,7 @@
  386. }
  387. if (prop_dim) {
  388. if (Z_OBJ_HT_P(*container)->has_property) {
  389. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  390. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  391. } else {
  392. zend_error(E_NOTICE, "Trying to check property of non-object");
  393. result = 0;
  394. @@ -24544,7 +24547,7 @@
  395. }
  396. if (prop_dim) {
  397. if (Z_OBJ_HT_P(*container)->has_property) {
  398. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  399. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  400. } else {
  401. zend_error(E_NOTICE, "Trying to check property of non-object");
  402. result = 0;
  403. @@ -26186,7 +26189,7 @@
  404. }
  405. if (prop_dim) {
  406. if (Z_OBJ_HT_P(*container)->has_property) {
  407. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  408. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  409. } else {
  410. zend_error(E_NOTICE, "Trying to check property of non-object");
  411. result = 0;
  412. @@ -27878,7 +27881,7 @@
  413. }
  414. if (prop_dim) {
  415. if (Z_OBJ_HT_P(*container)->has_property) {
  416. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  417. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  418. } else {
  419. zend_error(E_NOTICE, "Trying to check property of non-object");
  420. result = 0;
  421. @@ -30057,7 +30060,7 @@
  422. }
  423. if (prop_dim) {
  424. if (Z_OBJ_HT_P(*container)->has_property) {
  425. - result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value == ZEND_ISEMPTY) TSRMLS_CC);
  426. + result = Z_OBJ_HT_P(*container)->has_property(*container, offset, opline->extended_value TSRMLS_CC);
  427. } else {
  428. zend_error(E_NOTICE, "Trying to check property of non-object");
  429. result = 0;
RAW Paste Data