@@ -92,39 +92,39 @@ ZEND_GET_MODULE(dba)
9292/* {{{ php_dba_make_key */
9393static zend_string * php_dba_make_key (const HashTable * key )
9494{
95- zval * group , * name ;
96- zend_string * group_str , * name_str ;
97- HashPosition pos ;
98- int i = 0 ;
99-
100- if (zend_hash_num_elements (key ) != 2 ) {
101- zend_argument_error (NULL , 1 , "must have exactly two elements: \"key\" and \"name\"" );
102- return NULL ;
103- }
95+ zval * zv ;
96+ zend_string * group_str = NULL , * name_str = NULL ;
97+ int i = 0 ;
98+
99+ if (zend_hash_num_elements (key ) != 2 ) {
100+ zend_argument_error (NULL , 1 , "must have exactly two elements: \"key\" and \"name\"" );
101+ return NULL ;
102+ }
104103
105- ZEND_HASH_FOREACH_VAL (key , group ) {
106- zend_string * tmp = zval_try_get_string (group );
104+ ZEND_HASH_FOREACH_VAL (key , zv ) {
105+ zend_string * tmp = zval_try_get_string (zv );
107106 if (!tmp ) {
108107 if (group_str ) zend_string_release (group_str );
108+ if (name_str ) zend_string_release (name_str );
109109 return NULL ;
110110 }
111111
112- if (i == 0 ) {
112+ if (i ++ == 0 ) {
113113 group_str = tmp ;
114114 } else {
115115 name_str = tmp ;
116116 }
117-
118- i ++ ;
119117 } ZEND_HASH_FOREACH_END ();
120118
121119 if (ZSTR_LEN (group_str ) == 0 ) {
122120 zend_string_release (group_str );
123- return name_str ;
121+ return name_str ; // ownership transferred
124122 }
125123
126- zend_string * key_str = zend_strpprintf (0 , "[%s]%s" ,
127- ZSTR_VAL (group_str ), ZSTR_VAL (name_str ));
124+ zend_string * key_str = zend_strpprintf (
125+ 0 , "[%s]%s" ,
126+ ZSTR_VAL (group_str ), ZSTR_VAL (name_str )
127+ );
128128
129129 zend_string_release (group_str );
130130 zend_string_release (name_str );
0 commit comments