]> granicus.if.org Git - php/commitdiff
Fixed foreach() over object properties
authorDmitry Stogov <dmitry@zend.com>
Tue, 25 Feb 2014 13:56:03 +0000 (17:56 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 25 Feb 2014 13:56:03 +0000 (17:56 +0400)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index d0e17cea51e3a8e94fb8f6e163e2d503e1b29fb7..ef8817191f2c0714e9d55b678fedae5523124100 100644 (file)
@@ -4357,12 +4357,12 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
                                if (key_type == HASH_KEY_IS_LONG) {
                                        ZVAL_LONG(key, int_key);
                                } else {
-//???                                  const char *class_name, *prop_name;
-//???                                  int prop_name_len;
-//???                                  zend_unmangle_property_name_ex(
-//???                                          str_key, &class_name, &prop_name, &prop_name_len
-//???                                  );
-//???                                  ZVAL_STRINGL(key, prop_name, prop_name_len, 1);
+                                       const char *class_name, *prop_name;
+                                       int prop_name_len;
+                                       zend_unmangle_property_name_ex(
+                                               str_key->val, str_key->len, &class_name, &prop_name, &prop_name_len
+                                       );
+                                       ZVAL_STRINGL(key, prop_name, prop_name_len);
                                }
                        }
 
index f04ef2b319cefed7280e033d895cce6acedf7aba..7087a4e4d3a7883a5de4e992e3887b958c6d7a2e 100644 (file)
@@ -13276,12 +13276,12 @@ static int ZEND_FASTCALL  ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
                                if (key_type == HASH_KEY_IS_LONG) {
                                        ZVAL_LONG(key, int_key);
                                } else {
-//???                                  const char *class_name, *prop_name;
-//???                                  int prop_name_len;
-//???                                  zend_unmangle_property_name_ex(
-//???                                          str_key, &class_name, &prop_name, &prop_name_len
-//???                                  );
-//???                                  ZVAL_STRINGL(key, prop_name, prop_name_len, 1);
+                                       const char *class_name, *prop_name;
+                                       int prop_name_len;
+                                       zend_unmangle_property_name_ex(
+                                               str_key->val, str_key->len, &class_name, &prop_name, &prop_name_len
+                                       );
+                                       ZVAL_STRINGL(key, prop_name, prop_name_len);
                                }
                        }