]> granicus.if.org Git - php/commitdiff
Fixed support for arg_info and type hinfing (TODO: names should be interned)
authorDmitry Stogov <dmitry@zend.com>
Tue, 1 Apr 2014 07:44:11 +0000 (11:44 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 1 Apr 2014 07:44:11 +0000 (11:44 +0400)
ext/opcache/zend_persist.c
ext/opcache/zend_persist_calc.c

index 64833d0cfa5b18b56d44cae9ae4ed182b0e04425..5562f8c55de537bc9d044680b4256ea56bb656fe 100644 (file)
@@ -354,13 +354,11 @@ static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_sc
                        for (i = 0; i < op_array->num_args; i++) {
                                if (op_array->arg_info[i].name) {
 //???                                  zend_accel_store_interned_string(op_array->arg_info[i].name, op_array->arg_info[i].name_len + 1);
-                                       efree((char*)op_array->arg_info[i].name);
-                                       op_array->arg_info[i].name = NULL;
+                                       zend_accel_store(op_array->arg_info[i].name, op_array->arg_info[i].name_len + 1);
                                }
                                if (op_array->arg_info[i].class_name) {
 //???                                  zend_accel_store_interned_string(op_array->arg_info[i].class_name, op_array->arg_info[i].class_name_len + 1);
-                                       efree((char*)op_array->arg_info[i].class_name);
-                                       op_array->arg_info[i].class_name = NULL;
+                                       zend_accel_store(op_array->arg_info[i].class_name, op_array->arg_info[i].class_name_len + 1);
                                }
                        }
                }
index 089b09b4add882fc05fcf88828252714286677d5..5bd358df5c28dfa3de748c9c11168164439edb75 100644 (file)
@@ -209,9 +209,11 @@ static uint zend_persist_op_array_calc_ex(zend_op_array *op_array TSRMLS_DC)
                for (i = 0; i < op_array->num_args; i++) {
                        if (op_array->arg_info[i].name) {
 //???                          ADD_INTERNED_STRING(op_array->arg_info[i].name, op_array->arg_info[i].name_len + 1);
+                               ADD_SIZE(op_array->arg_info[i].name_len + 1);
                        }
                        if (op_array->arg_info[i].class_name) {
 //???                          ADD_INTERNED_STRING(op_array->arg_info[i].class_name, op_array->arg_info[i].class_name_len + 1);
+                               ADD_SIZE(op_array->arg_info[i].class_name_len + 1);
                        }
 
                }