]> granicus.if.org Git - php/commitdiff
- Correctly handle binary proeprty names which are not mangled
authorMarcus Boerger <helly@php.net>
Mon, 24 Jul 2006 23:28:00 +0000 (23:28 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 24 Jul 2006 23:28:00 +0000 (23:28 +0000)
ext/standard/var.c

index 34d80516a7ad4055d7babc79b9da94e431bcf687..386643d28dbac6c6ad48a715ec7c07eb8cf2a149 100644 (file)
@@ -149,17 +149,24 @@ static int php_object_property_dump(zval **zv, int num_args, va_list args, zend_
        } else { /* string key */
                int is_unicode = hash_key->type == IS_UNICODE;
 
-               zend_u_unmangle_property_name(hash_key->type, hash_key->arKey, hash_key->nKeyLength-1, &class_name, &prop_name);
+               int unmangle = zend_u_unmangle_property_name(hash_key->type, hash_key->arKey, hash_key->nKeyLength-1, &class_name, &prop_name);
                php_printf("%*c[", level + 1, ' ');
 
-               if (class_name.s) {
+               if (class_name.s && unmangle == SUCCESS) {
                        if (class_name.s[0]=='*') {
                                php_printf("%s\"%R\":protected", is_unicode ? "u" : "", hash_key->type, prop_name);
                        } else {
                                php_printf("%s\"%R\":%s\"%R\":private", is_unicode ? "u" : "", hash_key->type, prop_name, is_unicode ? "u" : "", hash_key->type, class_name);
                        }
                } else {
-                       php_printf("%s\"%R\"", is_unicode ? "u" : "", hash_key->type, prop_name);
+                       if (is_unicode) {
+                               php_printf("u");
+                               php_var_dump_unicode(hash_key->arKey.u, hash_key->nKeyLength-1, verbose, "\"", 0 TSRMLS_CC);
+                       } else {
+                               php_printf("\"");
+                               PHPWRITE(hash_key->arKey.s, hash_key->nKeyLength - 1);
+                               php_printf("\"");
+                       }
                }
                ZEND_PUTS("]=>\n");
        }