]> granicus.if.org Git - php/commitdiff
- Add fast access to HashTable
authorMarcus Boerger <helly@php.net>
Tue, 24 Jan 2006 19:48:11 +0000 (19:48 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 24 Jan 2006 19:48:11 +0000 (19:48 +0000)
Zend/zend_API.c

index dc8c7908086c90b9a5d88a8b831c2c499ea414ba..a2bc481d2514aa3ec9d4d7e7ef6859092619edae 100644 (file)
@@ -652,6 +652,20 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp
                        }
                        break;
 
+               case 'h':
+                       {
+                               HashTable **p = va_arg(*va, HashTable **);
+                               if (Z_TYPE_PP(arg) != IS_ARRAY) {
+                                       if (Z_TYPE_PP(arg) == IS_NULL && return_null) {
+                                               *p = NULL;
+                                       } else {
+                                               return "array";
+                                       }
+                               } else
+                                       *p = Z_ARRVAL_PP(arg);
+                       }
+                       break;
+
                case 'o':
                        {
                                zval **p = va_arg(*va, zval **);
@@ -798,6 +812,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
                        case 'z': case 'Z':
                        case 't': case 'y':
                        case 'u': case 'C':
+                       case 'h':
                                max_num_args++;
                                break;